Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android解析JSON数组_Java_Android_Arrays_Json_Parsing - Fatal编程技术网

Java Android解析JSON数组

Java Android解析JSON数组,java,android,arrays,json,parsing,Java,Android,Arrays,Json,Parsing,如果没有[]和“” 这里是json "formattedAddress": [ "23, Damansara - Puchong Hwy (Bandar Puchong Jaya)", "47100 Puchong Batu Dua Belas, Selangor", "Malaysia" ] 我的代码: poi.setFormattedAddress(jsonArray.getJSONObject(i).getJSONObject("location").getJSONArray("form

如果没有[]和“”

这里是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号,达曼萨拉-蒲冲高速公路(班达尔蒲冲加亚)”,“雪兰莪州蒲冲巴杜贝拉斯47100号”,“马来西亚”]

我只想要数据。作为:

马来西亚雪兰莪州蒲洪巴杜贝拉斯市蒲洪公路(班达尔蒲洪加亚)47100号,达曼萨拉-蒲洪公路23号


谢谢

试试这样的方法:

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);
  }
公共字符串getFormattedAddressFromArray(JSONArray数组){
列表字符串=新的ArrayList();
试一试{
对于(int i=0;i
使用
JSONArray#join()
连接元素。查看文档了解更多信息

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():


可能是您的JSon数组不正确。请检查此链接是的,我认为您的json不正确…请尝试将数据作为字符串数组读取。谢谢你的回复。我尝试了。加入,这是输出:“北点中谷城”、“吉隆坡、吉隆坡”、“马来西亚”很抱歉,我错过了。加入(“,”)。替换(“\”,”);-现在可以工作了。请刷新页面,以便显示我的编辑。使用替换(),如我的回答所示。谢谢@ravithapliyal
getJSONArray("formattedAddress").join(","));