【问题标题】:android how to convert json array to string arrayandroid如何将json数组转换为字符串数组
【发布时间】:2011-06-15 10:20:13
【问题描述】:

我有一个应用程序,我使用我在我的应用程序中使用的索引以数组 & 的形式从服务器(json)获取数据,如下所示。

JSONObject topobj = new JSONObject(page);
JSONObject innerobj = topobj.getJSONObject("restarutant");
JSONArray phone = innerobj.getJSONArray("phone");
textViewPhone.setText("Phone: " + phone.get(0).toString() + " ,"
                    + phone.get(1).toString());

对于小型数组,我可以得到这样的。但是当数组包含'n'个元素并且动态我必须使用它时,当时它需要转换为字符串数组。 谁能告诉我如何将 json 数组转换为 String 数组? 谢谢

【问题讨论】:

  • 如果您发现问题的正确答案很有用,您应该接受正确的答案(请参阅那里有一个勾号),并使用赞成票。它将帮助您获得更多答案。
  • ArrayList 不是 String[] ,标题不会满足您对问题的解释以及 ArrayList 接受的答案,而不是 String[] ;

标签: android json


【解决方案1】:

This 应该可以帮到你。

编辑:

也许这就是你需要的:

ArrayList<String> stringArray = new ArrayList<String>();
JSONArray jsonArray = new JSONArray();
for(int i = 0, count = jsonArray.length(); i< count; i++)
{
    try {
        JSONObject jsonObject = jsonArray.getJSONObject(i);
        stringArray.add(jsonObject.toString());
    }
    catch (JSONException e) {
        e.printStackTrace();
    }
}

【讨论】:

  • 嗨,我的问题不同。它用于将对象转换为字符串,然后将字符串转换为 json 数组。但我要求将 json 数组转换为字符串数组
  • 标题是关于 String[] 的,但接受的答案给出了一个 ArrayList ,但是它们完全不同
【解决方案2】:

假设你已经有了 JSONArray jsonArray:

String[] stringArray = new stringArray[jsonArray.length()];
for(int i = 0, count = jsonArray.length(); i< count; i++)
{
    try {
        String jsonString = jsonArray.getString(i);
        stringArray[i] = jsonString.toString();
    }
    catch (JSONException e) {
        e.printStackTrace();
    }
}

【讨论】:

  • 新字符串数组[jsonArray.length()]; --- 应该是 ---> new String[jsonArray.length()];
【解决方案3】:

我认为这就是您要搜索的内容

ArrayList<String> list = new ArrayList<String>();     
JSONArray jsonArray = (JSONArray)jsonObject; 
if (jsonArray != null) { 
   for (int i=0;i<jsonArray.length();i++){ 
    list.add(jsonArray.get(i).toString()); 
} 

【讨论】:

    【解决方案4】:

    我昨天刚做了这个!如果您愿意使用 3rd 方库,则可以使用 Google GSON,另外还有一个好处是代码更简洁。

    String json = jsonArray.toString();
    Type collectionType = new TypeToken<Collection<String>>(){}.getType();
    Collection<String> strings = gson.fromJson(json, collectionType);
    
    for (String element : strings)
    {
        Log.d("TAG", "I'm doing stuff with: " + element);
    }
    

    您可以在user guide 中找到更多示例。

    【讨论】:

      【解决方案5】:

      另一种优雅的 kotlin 方式:

      val list = jsonArray.map { jsonElement -> jsonElement.toString() }
      

      如果需要,只需转换为数组

      【讨论】:

        【解决方案6】:

        如果你使用org.json包,这里是kotlin将json数组转换为字符串数组的方式。

        // get json array
        val jsonArray = json.getJSONArray("field")
        // convert to string array
        val stringArray = Array(jsonArray.length()) { jsonArray.getString(it) }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-08-13
          • 1970-01-01
          • 2017-07-20
          • 2015-04-05
          • 2011-11-22
          相关资源
          最近更新 更多