从JSON对象解析字符串数组

时间:2017-11-07 17:46:41

标签: java android json parsing arraylist

这可能太容易但我找不到解决方案。如何直接从string对象中解析array JSON

例如,

json = {"names":["John", "Alex", "David"]}

我无法json.getJSONArray("names"),因为它不会返回string array

4 个答案:

答案 0 :(得分:3)

您可以将数据作为json数组获取,并通过它循环以创建列表

JSONObject jsonObject = new JSONObject("{names:['1','2','3']}");
JSONArray jsonArray = jsonObject.getJSONArray("names");

List<String> names = new ArrayList<String>();
for(int i = 0; i < jsonArray.length(); i++){
     names.add(jsonArray.getString(i));
}
System.out.println(names);

答案 1 :(得分:0)

你可以试试我的朋友

try 
{

  JSONObject jsonObj = new JSONObject("Your json string");
  JSONArray jsonArray = jsonObj .getJSONArray("names");

   for(int i=0;i<jsonArray .length();i++)
   {
      String name= jsonArray.getString(i);
      Log.i("..........",""+name);
      // loop and add it to array or arraylist
   }
}catch(Exception e)
{
        e.printStackTrace();
}

答案 2 :(得分:0)

试试这个伙伴,你会得到一个字符串数组的结果。

    String json = "{\"names\":[\"John\", \"Alex\", \"David\"]}";
    JSONObject jsonObject = new JSONObject(json);
    JSONArray jsonArray = jsonObject.getJSONArray("names");
    List<String> list = new ArrayList<String>();
    for (int i = 0; i < jsonArray.length(); i++) {
        list.add(jsonArray.getString(i));
    }
    String[] stringArray = list.toArray(new String[list.size()]);

答案 3 :(得分:0)

尝试此功能

public void ParseJsonArray(json){
try {
//if you have 1 column in json array
        JSONArray jsonArray = json.getJSONArray("names"); 
        int count = 0;

//if you have more columns      
        while (count<jsonArray.length()){

            JSONObject JO = jsonArray.getJSONObject(count);
            String s1 = JO.getString("column1");
            String s2 = JO.getString("column2");
            String s3 = JO.getString("column3");           
            count++;        }``

    String StrFinal = jsonArray;

    } catch (JSONException e) {
        e.printStackTrace();  }
    }