Java中解析JSON响应获取message与WORKORDERID数据的问题
解决Java解析JSON获取message和WORKORDERID的问题
嘿,我看到你在解析JSON的时候踩了个小坑,咱们来把代码修正过来,顺利拿到想要的数据~
首先得先理清你的JSON结构层级:
{
"operation": {
"result": {
"message": " successfully.",
"status": "Success"
},
"Details": {
"SUBJECT": "qqq",
"WORKORDERID": "800841"
}
}
}
你的原代码有几个问题:
message字段是嵌套在operation.result里的,不是直接在operation对象下,所以直接用jsonobject.getString("message")会找不到这个键system.out.println("s")有两个错误:Java里System类首字母必须大写,而且你打印的是字符串s,不是变量s
下面是修正后的完整代码,我还加上了获取WORKORDERID的逻辑:
import org.json.JSONObject; public class JsonParsingExample { public static void main(String[] args) { String jsonResponse = "{ \"operation\": { \"result\": { \"message\": \" successfully.\", \"status\": \"Success\" }, \"Details\": { \"SUBJECT\": \"qqq\", \"WORKORDERID\": \"800841\" } } }"; // 解析外层JSON JSONObject rootObj = new JSONObject(jsonResponse); // 获取operation对象 JSONObject operationObj = rootObj.getJSONObject("operation"); // 从result中提取message JSONObject resultObj = operationObj.getJSONObject("result"); String message = resultObj.getString("message"); System.out.println("提取到的message: " + message); // 从Details中提取WORKORDERID JSONObject detailsObj = operationObj.getJSONObject("Details"); String workOrderId = detailsObj.getString("WORKORDERID"); System.out.println("提取到的WORKORDERID: " + workOrderId); } }
代码说明:
- 用
getJSONObject()替代强制类型转换,更安全也更清晰,能避免类型转换异常 - 严格按照JSON的层级结构逐层解析:先拿
operation,再从里面分别拿result和Details对象 - 修正了
System.out.println的拼写问题,并且正确打印变量值而不是字符串字面量
运行这段代码,就能顺利输出你想要的message和WORKORDERID啦~
内容的提问来源于stack exchange,提问作者Kiran Chand
相关产品推荐
相关产品推荐

