2015-06-18 60 views
0

類型檢查,我寫這個方法來驗證類型的JSON字符串的:在JSON字符串

public static boolean loginMessageCheck(String json){ 
    boolean ret = false; 
    JSONObject o = new JSONObject(json); 

    Object ty = o.get("type"); 
    Object ex = o.get("expansions"); 
    if(ty instanceof String){ 
     if(ex instanceof String[]){ 
      ret = true; 
     } 
    } 
    return ret; 
} 

所以我現在正在測試這樣的方法。

public static void main(String[] args){ 
    String[] expansions= {"chat", "test"}; 
    LoginMessage_Client lm = new LoginMessage_Client("login", expansions); 
    Gson gson = new Gson(); 
    String json = gson.toJson(lm); 
    System.out.println(loginMessageCheck(json)); 
} 

它總是返回false,因爲 - if(ex instanceof String [])。 我該如何檢查這個數組是否是一個String數組?

回答

0

我會想象你可以做一些事情,如:

public static boolean loginMessageCheck(String json){ 
boolean ret = false; 
JSONObject o = new JSONObject(json); 

Class<?> ex = (o.get("expansions")).getClass(); 
if(ex.isArray() && (ex.getComponentType() instanceof String)){ 
    ret = true; 
} 
return ret;} 

從我讀有關的JSONObject, get返回與給定鍵相關的值,所以我對你的JSON的格式做了假設,即'擴展'包含了該消息的內容。

我也很抱歉,如果從對象類型轉換爲類的泛型不符合我寫的方式;我根本沒有使用Java的經驗,所以這只是對我的猜測。