无密钥解析JSON数组

时间:2017-12-28 06:57:14

标签: android arrays json

我正在尝试解析jsonArray,但无法理解这种格式,如何解析此类jsonArray? 任何人都可以帮助我吗?

  "rows": [
                [
                    "/farmfresh",
                    "20171211",
                    "4"
                ],
                [
                    "/farmfresh/product/d",
                    "20171215",
                    "4"
                ],
                [
                    "/farmfresh/product/h",
                    "20171222",
                    "2"
                ]
            ]

5 个答案:

答案 0 :(得分:2)

试试这个

try 
{    
    JSONObject resObject = new JSONObject("your json response");    
    JSONArray jsonArray = resObject.getJSONArray("rows");        

    for (int i = 0; i < jsonArray.length(); i++) {        
       JSONArray jsonArray1 = jsonArray.getJSONArray(i);

       for (int j = 0; j < jsonArray1.length(); j++) {

          Log.i("Value","->" +jsonArray1.getString(j));
       }
   }

} 
catch (JSONException e) 
{
    // TODO Auto-generated catch block
    e.printStackTrace();
}

<强>输出

enter image description here

答案 1 :(得分:2)

首先,您的JSON数据无效。有效数据将是

 { "rows": [
            [
                "/farmfresh",
                "20171211",
                "4"
            ],
            [
                "/farmfresh/product/d",
                "20171215",
                "4"
            ],
            [
                "/farmfresh/product/h",
                "20171222",
                "2"
            ]
        ]
}

现在我们可以解析这个有效的json,如下所示。这是用于使用默认JSON解析的android。你在这里

void parseJsonString(String jsonString) {
    try {
        JSONObject jsonObject = new JSONObject(jsonString);
        JSONArray jsonArray = jsonObject.getJSONArray("rows");
        for (int i = 0; i < jsonArray.length(); i++) {
            Log.d("jsonParse", "row position    =   " + String.valueOf(i));
            JSONArray jsonRow = jsonArray.getJSONArray(i);
            for (int j = 0; j < jsonRow.length(); j++) {
                String value = jsonRow.get(j).toString();
                Log.d("jsonParse", "value at " + String.valueOf(j) + " position is  " + value);
            }
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }
}

这段代码是为android完成的。这里JSON String作为parseJsonString方法的参数传递。它将在logcat中打印值,如下所示

enter image description here

答案 2 :(得分:1)

这是结构。

Object

  rows->Array

     -Array
     -Array
     -Array

答案 3 :(得分:1)

据我所知,我们无法解析您共享的JSON。它始终必须以“{”或“[”开头。如果它是一个数组,它应该看起来像JSON

["rows": [
            [
                "/farmfresh",
                "20171211",
                "4"
            ],
            [
                "/farmfresh/product/d",
                "20171215",
                "4"
            ],
            [
                "/farmfresh/product/h",
                "20171222",
                "2"
            ]
        ]
]

答案 4 :(得分:0)

String data = "{"+"YOUR_DATA"+"}";
 try {
        JSONObject object = new JSONObject(data);
        JSONArray itemArray = object.getJSONArray("rows");
        for (int i = 0; i < itemArray.length(); i++) {
            JSONArray innerItemArray=  itemArray.getJSONArray(i);
            for (int j = 0; j < innerItemArray.length(); j++) {
                String value=innerItemArray.getString(j);
                Log.e("json", "="+value);
            }

        }
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

希望有所帮助......