解析JSON响应

时间:2018-05-29 11:47:45

标签: java json restful-url phrase

我正在试着用下面的json响应来表达" message"和" WORKORDERID" java中的数据

{
    "operation": {
        "result": {
            "message": " successfully.",
            "status": "Success"
        },
        "Details": {
            "SUBJECT": "qqq",
            "WORKORDERID": "800841"
        }
    }
}

以下是我的代码

JSONObject inputs = new JSONObject(jsonResponse);
JSONObject jsonobject = (JSONObject) inputs.get("operation");
String s = jsonobject.getString("message");
system.out.println("s");

3 个答案:

答案 0 :(得分:3)

您的对象嵌套了2次,因此您应该这样做:

JSONObject inputs = new JSONObject(jsonResponse);

JSONObject operation= (JSONObject) inputs.get("operation");
JSONObject result= (JSONObject) operation.get("result");
JSONObject details= (JSONObject) operation.get("Details");
String message = result.getString("message");
String workerId = details.getString("WORKORDERID");

答案 1 :(得分:0)

JSONObject就像Map-Wrapper一样,所以你可以认为你的JSON数据结构是Map<Map<Map<String, Object>, Object>, Object>。因此,首先需要通过第一个键(操作)访问数据,然后是(结果),之后,您可以访问所需的字段(消息)。

注意,Map的值是Object,因此您需要将类型转换为JSONObject。

答案 2 :(得分:0)

有时在java中找不到JSONObject类。所以你需要添加jar

try{
   // build the json object as follows
   JSONObject jo = new JSONObject(jsonString);
   // get operation as json object
   JSONObject operation= (JSONObject) jo.get("operation");
   // get result as json object
   JSONObject result= (JSONObject) jo.get("result");
   JSONObject details= (JSONObject) jo.get("Details");
   // get string from the json object
   String message = jo.getString("message");
   String workerId = jo.getString("WORKORDERID");
}catch(JSONException e){
   System.out.println(e.getMessage());
}