2017-12-28 59 views
3

jsonArrayを解析しようとしていますが、この形式を理解できません。どのようにこのタイプのjsonArrayを解析するのですか? 誰でも助けてくれますか?キーなしでJSON配列を解析する

"rows": [ 
       [ 
        "/farmfresh", 
        "20171211", 
        "4" 
       ], 
       [ 
        "/farmfresh/product/d", 
        "20171215", 
        "4" 
       ], 
       [ 
        "/farmfresh/product/h", 
        "20171222", 
        "2" 
       ] 
      ] 
+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(); 
} 

OUTPUT

enter image description here

1

ここに構造があります。

Object 

    rows->Array 

    -Array 
    -Array 
    -Array 
1

を試してみてください、私たちは、あなたが共有JSONを解析することはできません。常に "{"または "["で始まらなければなりません。それが配列である場合、それはJSON

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

このjsonはGoogleアナリティクスの –

+0

です。先頭と末尾に「{」または「[」を追加できます。そしてそれを解析すると、うまくいくでしょう。 –

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(); 
    } 

以下のようになります。それがお役に立てば幸いです。..

2

すべてのJSONデータの最初は有効ではありません。有効なデータは

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

となります。次に、この有効なjsonを以下のように解析します。これはアンドロイドのためのデフォルトのJSON解析を使用しています。ここにあなた

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(); 
    } 
} 

このコードはアンドロイドのために行われます。ここでは、JSON StringがparseJsonStringメソッドの引数として渡されます。以下のようにlogcatの値を出力します

enter image description here