Java 提取JSON值,它是一个数组
我试图从Java 提取JSON值,它是一个数组,java,arrays,json,key-value,Java,Arrays,Json,Key Value,我试图从JSONObect中的键值对中提取值。结构如下: {"key1 ":["dog","cat"],"key2":["house","boat"]} 所以,我想提取狗和猫的价值观,以及房子和船的价值观。我在Java中尝试了以下内容: //obj - has this JSON. Iterator iter = obj.keys(); for (int i=0; i<len; i++){ String key = (String)iter.ne
JSONObect
中的键值对中提取值。结构如下:
{"key1 ":["dog","cat"],"key2":["house","boat"]}
所以,我想提取狗和猫的价值观,以及房子和船的价值观。我在Java中尝试了以下内容:
//obj - has this JSON.
Iterator iter = obj.keys();
for (int i=0; i<len; i++){
String key = (String)iter.next();
System.out.println("Key is --> "+key); //This is correctly giving me the keys.
System.out.println("Value is --> "+clientDetails.getJSONArray(key)); //This is not working. I tried lots of other things but to no avail.
}
//obj-具有此JSON。
迭代器iter=obj.keys();
对于(inti=0;i您应该使用快速json解析器()
它可以这样使用:
JsonParserFactory factory=JsonParserFactory.getInstance();
JSONParser parser=factory.newJsonParser();
Map jsonMap=parser.parseJson(jsonString);
通过以下途径拍摄:
这家伙解释得很好。我认为您在这里使用了名为clientDetails
的错误变量。您应该在这里使用相同的JSON obj
以上代码对我来说适用于相同的obj:
String json = "{\"key1 \":[\"dog\",\"cat\"],\"key2\":[\"house\",\"boat\"]}";
JSONObject obj=new JSONObject(json);
Iterator iter = obj.keys();
for (int i=0; i<obj.length(); i++){
String key = (String)iter.next();
System.out.println("Key is --> "+key);
System.out.println("Value is --> "+obj.getJSONArray(key));
}
String json=“{\'key1\”:[\'dog\,\'cat\”],\'key2\:[\'house\,\'boat\”];
JSONObject obj=新的JSONObject(json);
迭代器iter=obj.keys();
对于(int i=0;i感谢您的参与。我找到了问题的答案。下面是我如何提取JSON的值,它是键值对,值是数组
Iterator iter = obj.keys();
for (int i=0; i<len; i++){
String key = (String)iter.next();
System.out.println("Key is --> "+key);
String[] arr = (String[])clientDetails.get(key); //Here I am extracting the value which is an array, converting it to String array and then storing it in a variable of type String[]. Now I can loop through this "arr"
for (int m=0; m<arr.length;m++){
arr[]m // Can do whatever I want here!
}
迭代器iter=obj.keys();
对于(int i=0;我这里的clientDetails
是什么?我想知道它是如何为您工作的!因为您在最后一行中使用了JSONArray。JSONArray以“[”开头。这绝对不是JSONArray。请看,在JSONObject中有两个键,分别名为key1
和key2
。其中的值对将是[“house”,“boat”]
和[“dog”,“cat”]
分别。两者显然都是JSON数组。所以这个程序可以正常工作。