Android解析字符串的Json数组

时间:2013-10-05 11:00:47

标签: java android arrays json

如何在Android中解析Json数组字符串并将其保存在java字符串数组中(如:xy [])?

要解析我的Json:

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

稍后在我的代码中,我希望在我的布局中使用该数组填充一个微调项目。 我尝试的所有东西都只包含在微调器中列出的一个街道项目。

3 个答案:

答案 0 :(得分:36)

解析

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对象节点

答案 1 :(得分:3)

试试这个..

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

答案 2 :(得分:2)

我们需要先制作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取决于String。有一个完整的例子,可以在http://www.hemelix.com/JSONHandling

找到关于JSON字符串到JSON数组的一些解释