在JSON Java中解析和检索元素

时间:2016-11-15 12:22:00

标签: java json

   JSONParser parser = new JSONParser();
   try {
       Object obj = parser.parse(new FileReader("C:/Users/dan/Documents/rental.txt"));
       JSONObject jsonObject = (JSONObject) obj;
       for(Iterator iterator = jsonObject.keySet().iterator(); iterator.hasNext();) {
           String key = (String) iterator.next();
           System.out.println(jsonObject.get(key));
       }

    } catch (Exception e) {
        e.printStackTrace();
    }

以下是JSON字符串:

{
    "Search": {
        "VehicleList": [
            {
                "sipp": "CDMR",
                "name": "Ford Focus",
                "price": 157.85,
                "supplier": "Hertz",
                "rating": 8.9
            },
            {
                "sipp": "FVAR",
                "name": "Ford Galaxy",
                "price": 706.89,
                "supplier": "Hertz",
                "rating": 8.9
            }
          ]
        }
      }
 }

嗨,我可以使用我的代码迭代整个JSON对象,但是现在我想打印出车辆的名称和车辆的价格。任何帮助将不胜感激,我在使用JSON时是初学者。

2 个答案:

答案 0 :(得分:1)

您的JSON结构如下JsonObject -> JsonArray-> [JsonObject]
考虑到这一点,您可以使用此

访问名称和价格
Object obj = parser.parse(new FileReader("C:/Users/dan/Documents/rental.txt"));
JSONArray jsonArray = (JSONObject) obj.getJsonArray("VehicleList");
for(JSONObject jsonObject : jsonArray){
        System.out.println(jsonObject.getString("name") + " " + jsonObject.getDouble("price"))
    }
}

根据您的导入库,它可能与上述不同,但概念是相同的。

答案 1 :(得分:0)

你需要迭代json。例如。

$.Search.VehicleList[0].price will give you [157.85]
$.Search.VehicleList[1].price will give you [706.89]

http://www.jsonquerytool.com/会对你有用:)