我正在尝试在Android应用中转换以下JSON:
[
{
"patient_id": "16",
"patient_firstname": "Ion",
"patient_name": "Vasilescu",
"location": "Cardiologie, Salon 4, Pat 2"
},
{
"patient_id": "22",
"patient_firstname": "Claudiu",
"patient_name": "Popovici",
"location": "Pneumologie, Salon 5, Pat 5"
},
{
"patient_id": "15",
"patient_firstname": "Monica",
"patient_name": "Suciu",
"location": "Cardiologie, Salon 4, Pat 2"
}
]
我已阅读过simillar问题和答案,但就我而言,我没有看到任何语法问题。我已使用JSONLint检查了JSON,并且验证成功。
我的java代码如下:
public JSONObject toJson(String jString){
System.out.println("I've got"+jString+"*");
try {
return new JSONObject(jString);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("Error while converting to JSONObject");
}
return null;
}
有人有关于如何摆脱我的错误的建议吗?或者如何实施更好的解决方案?感谢。
答案 0 :(得分:4)
将JSONObject替换为JSONArray,因为它是一个数组!
答案 1 :(得分:3)
你得到的结果是JSon数组而不是JSon字符串,所以试着改变slass
您的代码:
public JSONObject toJson(String jString){
System.out.println("I've got"+jString+"*");
try {
return new JSONObject(jString);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("Error while converting to JSONObject");
}
return null;
}
修改后:
public JSONObject toJson(String jString){
System.out.println("I've got"+jString+"*");
try {
return new JSONArray(jString);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("Error while converting to JSONObject");
}
return null;
}
答案 2 :(得分:2)
请参阅here您的json仅包含JsonArray
列表,因此只需将String
转换为JSONArray
而不是JSONObject
:
public JSONArray toJson(String jString){
System.out.println("I've got"+jString+"*");
try {
return new JSONArray(jString);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("Error while converting to JSONArray");
}
return null;
}