Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 提取JSON值,它是一个数组_Java_Arrays_Json_Key Value - Fatal编程技术网

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数组。所以这个程序可以正常工作。