首页 > 解决方案 > 如何在Java中解析复杂的json字符串

问题描述

对于像下面这样的 json 字符串,我想遍历 DayOrder 2 和 3,我该如何解析?

{
  "data": [
    {
      "DayOrder": 2,
      "DayOfWeekStr": "Tuesday"
    },
    {
      "DayOrder": 3,
      "DayOfWeekStr": "Wednesday"
    }
  ]
}

我试过的代码是这样的:

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;


 JSONParser jsonParser = new JSONParser();
 Object obj = jsonParser.parse(inputstring);
 JSONArray array = (JSONArray) obj["data"];

我已经尝试了很多其他但没有工作

标签: javajson

解决方案


虽然Gson显然很好,但您也可以正确使用org.json,因为您已经拥有它,我们可以看到

就像是

String jsonData = "{\"data\": [ {   \"DayOrder\": 2,   \"DayOfWeekStr\": \"Tuesday\" }, {   \"DayOrder\": 3,   \"DayOfWeekStr\": \"Wednesday\" }]}";

final JSONObject obj = new JSONObject(jsonData);
final JSONArray data = obj.getJSONArray("data");
for(int i  = 0; i < data.length(); i++) {
   JSONObject dataObj = data.getJSONObject(i);
   LOG.info("DayOrder {}", dataObj.getInt("DayOrder"));
}

推荐阅读