【问题标题】:Parsing string array from JSON object从 JSON 对象解析字符串数组
【发布时间】:2017-11-07 17:46:40
【问题描述】:

这可能太容易了,但我就是找不到解决办法。如何从JSON 对象中直接解析出string array

例如,

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

我不能做json.getJSONArray("names"),因为它不返回stringarray

【问题讨论】:

标签: java android json parsing arraylist


【解决方案1】:

您可以将数据作为 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);

【讨论】:

    【解决方案2】:

    朋友可以试试这个

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        试试这个功能

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-11-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-06-24
          • 2020-02-06
          • 1970-01-01
          相关资源
          最近更新 更多