我使用以下代码将字符串转换为json并解析它。
String sb= {"meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 1}, "objects": [{"api_key": "c87391754b522d0c83b2c8b5e4c8cfd614559632deee70fdf1b48d470307e40e", "homeAddress": "kathmandu", "resource_uri": "/api/ca/entry/1/", "username": "sumit"}]}
try {
JSONObject jsonObject = new JSONObject(sb);
JSONObject object = jsonObject.getJSONObject("objects");
String api_key= object.getString("api_key");
Toast.makeText(HelloWorldActivity.this, api_key, Toast.LENGTH_SHORT).show();
} catch (JSONException e) {
e.printStackTrace();
}
在一些教程之后,我试图解析json,但我无法解析它。例如:我想将api_key作为c87391754b522d0c83b2c8b5e4c8cfd614559632deee70fdf1b48d470307e40e返回
我在上面代码中误认的任何事情
答案 0 :(得分:2)
始终使用JSONLint或类似网站来格式化您的JSON。
您的JSON就像这样
{
"meta": {
"limit": 20,
"next": null,
"offset": 0,
"previous": null,
"total_count": 1
},
"objects": [
{
"api_key": "c87391754b522d0c83b2c8b5e4c8cfd614559632deee70fdf1b48d470307e40e",
"homeAddress": "kathmandu",
"resource_uri": "/api/ca/entry/1/",
"username": "sumit"
}
]
}
这里“对象”将返回数组而不是对象。
将您的代码更改为以下内容。
try {
JSONObject jsonObject = new JSONObject(sb);
JSONArray array = jsonObject.getJSONArray("objects");
String key = array.getJSONObject(0).getString("api_key");
String uname = array.getJSONObject(0).getString("username");
Toast.makeText(HelloWorldActivity.this, username + " " + key,
Toast.LENGTH_SHORT).show();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}