Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Org.json - Fatal编程技术网

获取Java中的JSON嵌套数组元素

获取Java中的JSON嵌套数组元素,java,arrays,json,org.json,Java,Arrays,Json,Org.json,我使用org.json查找json对象和值(org.json是一项要求),并尝试访问子数组元素 我的json: { "Info": { "name": "my_json", }, "my_array": { "arrays": [ { "array 1": [ { "name": "red", "server": "red1", "capacity":

我使用
org.json
查找json对象和值(
org.json
是一项要求),并尝试访问子数组元素

我的json:

{
   "Info": {
     "name": "my_json",
},
   "my_array": {
     "arrays": [
       {
       "array 1": [
         {
           "name": "red",
           "server": "red1",
           "capacity": "123"
         },
        {
           "name": "blue",
           "server": "blue1",
           "capacity": "456"
        }
     ]
   },
   {
      "array 2": [
        {
          "name": "white",
          "server": "white1",
          "capacity": "1234"
        },
        {
          "name": "black",
          "server": "black1",
          "capacity": "4567"
        }
      ]
    }
  ]
 }
}
这将产生:

{"array 1":[
     {"name":"red","capacity":"123","server":"red1"},
     {"capacity":"456","name":"blue","name":"blue1"}
]}
{"array 2":[
     {"capacacity":"1234","name":"white","server":"white1"},
     {"name":"black","capacity":"4567","server":"black1"}
]}
{"array 1":[
     {"name":"red","capacity":"123","server":"red1"},
     {"capacity":"456","name":"blue","name":"blue1"}
]}
{"array 2":[
     {"capacity":"1234","name":"white","server":"white1"},
     {"name":"black","capacity":"4567","server":"black1"}
]}
该方法如下所示:

 public static String processJson(String[] args) throws JSONException {
    String value = "";
    String jsonData = readFile(args[0]);
    JSONObject jobj = new JSONObject(jsonData);
    if (args[1].equals("my_array")) {
        JSONObject parent = jobj.getJSONObject("my_array");
        JSONArray jarr = parent.getJSONArray("arrays");
        for (int i = 0; i < jarr.length(); i++) {
            for (int j = 0; j < jarr.length(); j++) {
                JSONObject test1 = jarr.getJSONObject(j);
                System.out.println(test1);
            }
        }
    }
    return value;
}
是否可以获取
数组1
元素?
我以为嵌套循环会处理它,但它只在同一时间输出

如果只需要第一个元素,则不需要循环

       JSONObject test1 = jarr.getJSONObject(0);
       System.out.println(test1);
如果您想格式化
test1
您可以

System.out.println (test1.toString ().replace ("{\"array 1\":", ""));

什么是args[1]?@jeanr我猜它是
my_array
当我试图读取json有效负载的结构时,它看起来是这样的:my_array.array[0]。“array 1”my_array.array[1]。“array 1”你确定你的json格式排列整齐,即在适当的层次结构或关系中吗?很好!删除了两个循环!如果数组1作为参数传递,您将如何删除它?例如,
replace(“{\”变量名\“:”,”)
不会删除该字符串。您可以使用类似
str.replace(var,”)
的变量,其中
var
是类似
var=“{\”+”数组1“+”:”;
System.out.println (test1.toString ().replace ("{\"array 1\":", ""));