我的JSON文件包含具有相同键的字符串,但其中一些字符串显示为某些字符串。例如:
{
"city": "CB1 2BH Cambridge",
"addr": "Devonshire Road 1",
"title": "Devonshire Arms",
"phone": "+44 1223 6610"
},
{
"city": "E8 1JH London",
"addr": "Amhurst Road 90",
"title": "Pembury Tavern",
"web": "http://www.individualpubs.co.uk/pembury/"
},
{
"web": "http://bandholmhotel.dk/",
"title": "Bandholm Hotel",
},
{
"city": "00100 Helsinki",
"addr": "Pohjoinen Rautatiekatu 23",
"title": "Helkan Baari",
"country": "FI"
},
如何在android中正确解析它?
答案 0 :(得分:1)
考虑到这是你的JSONArray,
尝试执行以下操作,
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jObj = (JSONObject) jsonProductArray.getJSONObject(i);
String city = jObj.optString("city", "cityDefaultValue");
String addr = jObj.optString("addr", "addDefaultValue");
String title = jObj.optString("title", "titleDefaultValue");
String phone = jObj.optString("phone", "phoneDefaultValue");
}
答案 1 :(得分:0)
一种可能的解决方案是使用模态类并使用Gson库来解析Json。
对于在Json
中找不到值的键,您可以在模态类中设置一些默认值答案 2 :(得分:0)
使用json的键创建一个模型类,并使用gson将其解析为模型类。
A a = gson.fromJson(jsonRes.toString(),A.class);
here A is your model class and a is the instance of A
答案 3 :(得分:0)
您可以使用Gson库。 创建类似的东西
class SomeObjects {
@SerializedName("city")
private String mCity;
@SerializedName("addr")
private String mAddres;
...
}
然后
SomeObject obj = new Gson.fromJson(jsonString, SomeObject.class);
你也可以直接进入数组