错误:
W/System.err﹕ org.json.JSONException: Value [] of type org.json.JSONArray cannot be converted to JSONObject
W/System.err﹕ at org.json.JSON.typeMismatch(JSON.java:111)
W/System.err﹕ at org.json.JSONObject.<init>(JSONObject.java:158)
W/System.err﹕ at org.json.JSONObject.<init>(JSONObject.java:171)
代码:
在try块中
post.setEntity(new UrlEncodedFormEntity(data_to_send));
HttpResponse httpResponse = client.execute(post);
HttpEntity entity = httpResponse.getEntity();
String result = EntityUtils.toString(entity);
JSONObject jsonObject = new JSONObject(result);
if(jsonObject.length() == 0)
{
retunedContact = null;
}
else
{
String name,email;
name = null;
email=null;
if(jsonObject.has("name"))
name = jsonObject.getString("name");
if(jsonObject.has("email"))
email =jsonObject.getString("email");
retunedContact = new Contact(name , email , contact.username , contact.password);
}
catch(Exception e)
{
e.printStackTrace();
}
答案 0 :(得分:0)
您的搜索结果似乎是JSONArray
[..]
而不是JSONObject
,而不是{..}
而不是JsonObject
使用JsonArray
,例如:
try {
JSONArray myJsonArray = new JSONArray(result);
} catch (JSONException e) {
// log Error
}
答案 1 :(得分:0)
我认为您从api
获得的格式是
[
{
"somekey":"somevalue",
"somekey2":"somevalue2"
},
{
"somekey":"somevalue",
"somekey2":"somevalue2"
}
]
那么你应该知道这种格式是JSONArray
而不是JSONObject
。所以,最好尝试这个代码
JSONParser parser = new JSONParser()
JSONObject jsonObject = (JSONArray)parser.parse(result);
或
try {
JSONArray obj_JSONArray= new JSONArray(result);
} catch (JSONException e) {
e.printStackTrace();
}