Java 如何迭代json字符串

Java 如何迭代json字符串,java,json,Java,Json,我有一个JSON字符串数组,如: [{ "id":"BirthDate", "field":"BirthDate", "type":"date", "input":"text", "operator":"equal", "value":"2016/04/07" }] 我希望能够迭代这个数组,并希望在Java中获得它的id、字段和值 使用下面的代码,我得到了一个异常 “json对象必须以{开头” 尝试将规则解析为JSONArray: String rules = "[{\"id\":\"Birt

我有一个JSON字符串数组,如:

[{
"id":"BirthDate",
"field":"BirthDate",
"type":"date",
"input":"text",
"operator":"equal",
"value":"2016/04/07"
}]
我希望能够迭代这个数组,并希望在Java中获得它的id、字段和值

使用下面的代码,我得到了一个异常 “json对象必须以{开头”


尝试将
规则解析为
JSONArray

String rules = "[{\"id\":\"BirthDate\",\"field\":\"BirthDate\",\"type\":\"date\",\"input\":\"text\",\"operator\":\"equal\",\"value\":\"2016/04/07\"}]";

try {
    JSONArray obj = new JSONArray(rules); // parse the array
    for(int i = 0; i < obj.length(); i++){ // iterate over the array
        JSONObject o = obj.getJSONObject(i);
        String id = o.getString("id");
        System.out.println("===id is===: " + id);
    }
} catch (JSONException e){
    e.printStackTrace();
}
String rules=“[{\“id\”:“BirthDate\”,“field\”:“BirthDate\”,“type\”:“date\”,“input\”:“text\”,“operator\”:“equal\”,“value\”:“2016/04/07\”);
试一试{
JSONArray obj=新的JSONArray(规则);//解析数组
对于(int i=0;i

在您给出的JSON示例中,数组中只有一个元素。

您应该从字符串创建一个
JSONArray
,然后在数组上迭代。根据需要修改代码

String rules=helper.getRules();
System.out.println("====Rulses=====:"+rules);
try {
    // create the json array from String rules
    JSONArray jsonRules = new JSONArray(rules);
    // iterate over the rules 
    for (int i=0; i<jsonRules.length();i++){
        JSONObject obj = jsonRules.get(i);
        System.out.println("====obj===="+obj);

        String id = obj.getString("id");
        System.out.println("===id is===: "+id);
    }
} catch (JSONException e){
    e.printStackTrace();
}
String rules=helper.getRules();
System.out.println(“==Rulses===:”+规则);
试一试{
//根据字符串规则创建json数组
JSONArray jsonRules=新的JSONArray(规则);
//重复规则

for(int i=0;i您拥有的是一个JSON数组,包含一个对象。我从ajax获得这个字符串[{“id”:“BirthDate”,“field”:“BirthDate”,“type”:“date”,“input”:“text”,“operator”:“equal”,“value”:“2016/04/07”}]我只想迭代这个是的。它是一个JSON数组,不是一个对象。就像错误消息告诉你的一样。你不明白哪一部分?我无法迭代这个JSONARRAY我得到了这个字符串形式的数组
String rules=helper.getRules();
System.out.println("====Rulses=====:"+rules);
try {
    // create the json array from String rules
    JSONArray jsonRules = new JSONArray(rules);
    // iterate over the rules 
    for (int i=0; i<jsonRules.length();i++){
        JSONObject obj = jsonRules.get(i);
        System.out.println("====obj===="+obj);

        String id = obj.getString("id");
        System.out.println("===id is===: "+id);
    }
} catch (JSONException e){
    e.printStackTrace();
}