1

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

[{"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 问题?

提前致谢!

4

3 回答 3

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"}]
于 2012-05-20T08:29:59.857 回答
1

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

于 2012-05-22T02:02:58.683 回答
0

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

$user_id = (int) $id;
$email = (string) $email;
于 2012-05-20T08:25:18.953 回答