Android 解析 JSON 数组

Android Parse JSON Array

如何解析 JSON 数组以获取没有 [] 和 ""

的数据

这里是 json

"formattedAddress": [
"23, Damansara - Puchong Hwy (Bandar Puchong Jaya)",
"47100 Puchong Batu Dua Belas, Selangor",
"Malaysia"
]

我的代码:

poi.setFormattedAddress(jsonArray.getJSONObject(i).getJSONObject("location").getJSONArray("formattedAddress").toString());

输出: [ "23, Damansara - Puchong Hwy (Puchong Jaya City)", "47100 Puchong Batu Dua Belas, Selangor", "Malaysia" ]

我只想要数据。我们:

23, Damansara - Puchong Hwy (Puchong Jaya Town), 47100 Puchong Batu Dua Belas, Selangor, Malaysia

谢谢

尝试这样的事情:

public String getFormattedAddressFromArray(JSONArray array) {
    List<String> strings = new ArrayList<String>();
    try {
      for (int i = 0; i < array.length(); i++) {
        strings.add(array.getString(i));
      }
    } catch (JSONException e) {
      e.printStackTrace();
    }
    return TextUtils.join(", ", strings);
  }

使用JSONArray#join()连接元素。查看 JSONArray 文档了解更多信息。

poi.setFormattedAddress(
    jsonArray.getJSONObject(i).getJSONObject("location")
       .getJSONArray("formattedAddress").join(", ")); // passing ", " as the separator

不清楚引号是否是您输入的 JSON 字符串的一部分。如果它们出现在您的加入中,您可以使用 String#replace() 方法轻松删除它们。

System.out.println(jsonArray.join(", ").replace("\"", ""));

使用JSONArray.join():

getJSONArray("formattedAddress").join(","));