获取错误:分析数据org.json.JSONException时出错:无法将org.json.JONArray类型的值转


getting error :Error parsing data org.json.JSONException: Value of type org.json.JSONArray cannot be converted to JSONObject

陷入困境,需要帮助。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);

根据@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;
}
相关文章: