Java Android解析JSON数组
如果没有[]和“” 这里是jsonJava 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
"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(","));