web-dev-qa-db-ja.com

Android文字列のJson配列の解析

Android文字列のJson配列を解析し、Java文字列配列(例:xy [])に保存するにはどうすればよいですか?

パースされる私のJson:

 [
  {
    "streets": [ "street1", "street2", "street3",... ],
  }
 ]

私のコードの後半で、レイアウトのスピナーアイテムにその配列を入力したいと思います。私が試したすべては、スピナーにリストされている1つのストリートアイテムのみで終了します。

13
Deniz Celebi

パースします

try {

   JSONArray jr = new JSONArray("Your json string");
   JSONObject jb = (JSONObject)jr.getJSONObject(0);
   JSONArray st = jb.getJSONArray("streets");
   for(int i=0;i<st.length();i++)
       {
      String street = st.getString(i);
      Log.i("..........",""+street);
      // loop and add it to array or arraylist
        }
}catch(Exception e)
{
        e.printStackTrace();
}

解析して配列に追加したら、同じを使用してスピナーに入力します。

[はjson配列ノードを表します

{はjsonオブジェクトノードを表します

38
Raghunandan

これを試して..

 JSONArray arr = new JSONArray(json string);

    for(int i = 0; i < arr.length(); i++){

            JSONObject c = arr.getJSONObject(i);        
            JSONArray ar_in = c.getJSONArray("streets");

        for(int j = 0; j < ar_in.length(); j++){    
            Log.v("result--", ar_in.getString(j));
        }
   }
3
Hariharan

最初にJSONオブジェクトを作成する必要があります。例えば、

JSONObject jsonObject = new JSONObject(resp);
// resp is your JSON string
JSONArray arr  = jsonObject.getJSONArray("results");
Log.i(LOG, "arr length =  " + arr.length());
for(int i=0;i<arr.length();i++)
{...

arrには他のJSONオブジェクトまたはJSON配列が含まれる場合があります。 JSONの変換方法は文字列によって異なります。 JSON文字列からJSON配列への説明を含む完全な例があります http://www.hemelix.com/JSONHandling

2
RotatingWheel