Android:字符串无法转换为JSONArray?

时间:2012-05-20 08:13:08

标签: java android json http

我可以从php的json_encode获得json响应,我能够在我的日志中显示它在eclipse中的响应是什么:

[{"idusers":"1","full_name":"Test Subject","get_email":"test_subject@gmail.com"},
{"idusers":"2","full_name":"Test Subject_2","get_email":"test_subject_2@gmail.com"}]

现在,我正在尝试

    //parse json data
    try {
        JSONArray jArray = new JSONArray(result);
        for(int i =0; i<jArray.length(); i++){
            JSONObject json_data = jArray.getJSONObject(i);
            Log.i("log_tag","id: "+json_data.getInt("idusers")+
                    ", Full Name: "+json_data.getString("full_name")+
                    ", Email: "+json_data.getString("get_email")
                    );
        }
    }catch(JSONException e){
        Log.e("log_tag","Error parsin data "+e.toString());
    }

但是,我收到一条错误说

Error parsin data org.json.JSONException: Value testing of type java.lang.String cannot be converted to JSONArray

有没有办法解决JSONArray问题?

提前致谢!

3 个答案:

答案 0 :(得分:1)

您的JSON无效。第二个数组元素中的“get_email”值缺少引号(“)。

应该是:

[
    {
        "idusers": "1",
        "full_name": "Test Subject",
        "get_email": "test_subject@gmail.com"
    },
    {
        "idusers": "2",
        "full_name": "Test Subject_2",
        "get_email": "test_subject_2@gmail.com"}]

答案 1 :(得分:1)

发现发生了什么。我在PHP文档中有一个字符串,但没有被调用。我有“测试”这个词,这是错误中的一个词。一旦这个“测试”被删除,它就有效了。感谢

答案 2 :(得分:0)

尝试向JSON返回的PHP变量添加强制转换。另外,你使用的是json_encode吗?

$user_id = (int) $id;
$email = (string) $email;