我正在使用 org.json.simple
库来构造 JSONObject
的 JSONArray
。所以我的结构看起来像
c= [
{
"name":"test",
"age":1
},
{
"name":"test",
"age":1
}
]
为了在java中迭代数组,我试过了
for (int i = 0; i < c.size(); i++) {
JSONObject obj = (JSONObject) c.get(i);
System.out.println(obj.get("name"));
}
它打印了 null
,但是当尝试打印 obj.toString
时,它按预期打印了 JSON 字符串。
我正在使用 org.json.simple
jar,所以不能使用定义的方法 org.json.JSONArray
或 org.json.JSONObject
.
有什么想法可以使用键从对象中获取值吗?
最佳答案
你的代码绝对正确,它与 org.json.simple
一起工作得很好:
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class JsonTest {
public static void main(String[] args) throws ParseException {
JSONArray c = (JSONArray) new JSONParser()
.parse("[ { \"name\":\"test\", \"age\":1 }, "
+ "{ \"name\":\"test\", \"age\":1 } ]");
for (int i = 0; i < c.size(); i++) {
JSONObject obj = (JSONObject) c.get(i);
System.out.println(obj.get("name"));
}
}
}
输出:
test
test
检查输入 JSONArray
是如何创建的。里面可能有不一样的东西。例如,您可能在键名中有不可打印的字符,因此在使用 c.toString()
时看不到它,但是 obj.get("name")
失败。
关于java - 迭代 JSON 对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31045423/