获取错误:解析数据时出错org.json.JSONException:org.json.JSONArray类型的值无法转换为JSONObject

时间:2014-04-14 20:17:19

标签: java php android json database

坚持并需要帮助。 JSON解析器无法转换数据,因此我可以使用用户名和密码登录。

jsonParser = new JSONParser();
public JSONObject loginUser(String username, String password) {
    // Building Parameters
    List<NameValuePair> params = new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("tag", login_tag));
    params.add(new BasicNameValuePair("username", username));
    params.add(new BasicNameValuePair("password", password));
    JSONObject json = jsonParser.getJSONFromUrl(loginURL, params);
    return json;
}

PHP部分代码:

while($r = mysql_fetch_assoc($result)) {
    $json[] = $r;
}
print json_encode($json);

1 个答案:

答案 0 :(得分:0)

使用@ njzk2的注释,解决方案应该是更改PHP编码:

但是你得到了第一个:

while($r = mysql_fetch_assoc($result)) {
    $json = $r;
    break;
}
print json_encode($json);

或者将Java编码更改为JsonArray

jsonParser = new JSONParser();
public JSONArray loginUser(String username, String password) {
    // Building Parameters
    List<NameValuePair> params = new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("tag", login_tag));
    params.add(new BasicNameValuePair("username", username));
    params.add(new BasicNameValuePair("password", password));
    // change the following line, to the correct method. Which parser do you use?
    JSONArray json = jsonParser.getJSONArrayFromUrl(loginURL, params);
    return json;
}