我正在试着用下面的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");
答案 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());
}