我有两种Json输出的情况。 一个是找到的数据,我有一个像这样的json数组和一个json对象:
{"data":"yes"}[{"id":"10","number":"7","text":"text7","desc":"text7_again","user_code":"0"},{"id":"11","number":"8","text":"text8","desc":"text8_again","user_code":"1"}]
其他情况是找不到数据:
{"data":"no"}
只是一个json对象。
如何解析Android客户端中的这些数据以支持两个坐标?
答案 0 :(得分:1)
首先,您应该在http://jsonlint.com/中验证您的json,如果您测试它,您将看起来是一个错误的json。因此,为了使其正确,在您的服务器中,您的响应应该如下所示:
{"data":"yes","response":[{"id":"10","number":"7","text":"text7","desc":"text7_again","user_code":"0"},{"id":"11","number":"8","text":"text8","desc":"text8_again","user_code":"1"}]}
在那种情况下,在android
中JSONObject jsonObj = new JSONObject(response);
if (jsonObj.getString("data").compareTo("yes") == 0) {
JSONArray jsonArray = jsonObj.getJSONArray("response");
//To-Do another code
}
这就是
答案 1 :(得分:1)
这是一个可能的情况:(你需要修复你的json格式)
成功 -
string resultJSON =
{"success":true,
"data":[
{"id":"10","number":"7","text":"text7","desc":"text7_again","user_code":"0"},
{"id":"11","number":"8","text":"text8","desc":"text8_again","user_code":"1"}]}
失败 -
string resultJSON =
{"success":false}
然后
JSONObject jsonRoot = new JSONObject(resultJSON);
bool isSuccess = jsonRoot.getBoolean("success");
if (isSuccess) {
// do the array parser
for(int i=0; i<jsonData.lenght;i++) {
JSONObject jsonObj = jsonData.getJSONObject(i);
String id = jsonObj.getString("id"); // get the value of id
String desc = jsonObj.getString("desc"); // and so on...
}
}