这个问题在这里已经有答案了:
如何在java中解析json(34个答案)
一年前关门了。
我正在使用json解析器对象解析json文件。我无法访问请求结构及其内部正文内容。我写过这样的代码:
private static final String filePath = "D:\\score_api.json";
public static void main(String[] args) throws FileNotFoundException, IOException, ParseException {
FileReader reader = new FileReader(filePath);
JSONParser jsonParser = new JSONParser();
JSONObject jsonObject = (JSONObject) jsonParser.parse(reader);
System.out.println("++++++++++++++++++\n"+jsonObject);
// prints the whole json content. success!
JSONObject structure = (JSONObject) jsonObject.get("provider");
System.out.println("provider name: " + structure.get("name"));
// prints the provider name. success!
JSONArray req= (JSONArray) jsonObject.get("interactions");
Iterator i = req.iterator();
while (i.hasNext()) {
JSONObject reqObj = (JSONObject) i.next();
System.out.println("description: " + reqObj.get("description") +"\n");
System.out.println("request body: " + reqObj.get("request")); // prints full request body
System.out.println("path: " + reqObj.get("path") +"\n"); // Failing, getting null value.
System.out.println("reponse body: " + reqObj.get("response") +"\n"); // Success
}
}
它的输出:
++++++++++++++++++{“完整json文件内容打印”}
提供者名称:sis描述:api post score请求主体:{“完整请求主体打印”}路径:null响应主体:{“状态”:200}
我正在努力访问请求正文内容。以及它的孩子部分。我想访问“path”的值和其他内部值,如“adptpolval”、“eecoid”和源结构。
我是一个java新手,我尝试过但失败了。任何帮助都将不胜感激!提前谢谢!
这是我的json文件内容。。。
{
"consumer": {
"name": "Consumer1"
},
"provider": {
"name": "provider_a"
},
"interactions": [
{
"description": "API Score",
"providerStates": [
{
"name": "",
"params": {}
}
],
"request": {
"method": "post",
"path": "Z123MI6/services/score",
"headers": {
"content-type": "application/json"
},
"body": {
"adptPolVal": true,
"datapoints": [
{
"dataId": " data.point.id ",
"source": {
"srcType": "sourceType.dev.admin",
"snum": "12345",
"instId": "intance id",
"contId": "container id",
"appId": "com.consumer."
},
"userId": "userId",
"ts": 1234567891011,
"lt": 11.12345,
"lng": 123.456,
"ipId": "192.168.1.1",
"geoGraph": ""
}
],
"eEcoId": "ecoId"
}
},
"response": {
"status": 200
}
}
]
}
2条答案
按热度按时间xnifntxz1#
尝试替换此行
使用:
hkmswyz62#
您可以使用下面的类作为引用来获得所需的值。
请确保根据您的输出适当地使用getjsonarray()和getjsonobject()方法。