Просто проверьте тип данных части JSON message
и, соответственно, используйте его.
Проверьте этот пример.
package test;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class jsonDeco {
public static void main(String[] args) throws JSONException {
// TODO Auto-generated method stub
JSONObject a = new JSONObject("{ \"status_code\": 2002, \"sub_status_code\": 2002,"
+ " \"message\": \"Service Invoke Create Step2 Success\"} ");
JSONObject b = new JSONObject("{ \"status_code\": 7000, \"sub_status_code\": 7001,"
+ " \"message\": [ \"Step No: Step 2: Line No: 92 Variable Name: lan-pool-ipv6-mask"
+ " Error Code: 7516 Error Detail: Lan Pool IPV6 network address is invalid Description: \" ]}");
parseAORB(b);
}
public static void parseAORB(JSONObject input) throws JSONException
{
String code = input.getString("status_code");
System.out.println(code);
System.out.println(nameOf(input.get("message")));
if(nameOf(input.get("message")).equals("String"))
{
System.out.println("inside string");
String message = input.getString("message");
System.out.println("Message is : "+message);
}
else if (nameOf(input.get("message")).equals("JSONArray"))
{
JSONArray message = input.getJSONArray("message");
System.out.println("inside jsonarray");
System.out.println("Message is : "+message.getString(0).toString());
}
}
private static String nameOf(Object o) {
return o.getClass().getSimpleName();
}
}
Вы можете передать переменную a
или b
вtest.
PS В комментарии оба примера неверны.В первом случае в конце есть еще одна запятая ,
, а во втором примере вы не закрыли фигурную скобку }
.