抛出异常的Java JSON代码

时间:2012-03-07 19:16:05

标签: java json

我有这个JSON字符串:

   [{"user_id":"123","email":"person@email.com","lat":"40.748329","lng":"-73.996223",
                    "first_name":"Alex","last_name":"Genadinik"}]

和这个Java代码:

            try
            {
                JSONObject obj = new JSONObject(result);

                Log.d( "NAME: " , "test: " + obj.getString("first_name") );       

            }
            catch ( Exception e )
            {
                Log.d( "JSON ERRORZ: " , "some crap happened " + e.getMessage() );  
            }

但它引发了这个错误:

[{"last_name":"Genadinik","first_name":"Alex","lng":"-73.996223","user_id":"1","email":"alex.genadinik@gmail.com","lat":"40.748329"}] of type org.json.JSONArray cannot be converted to JSONObject

我知道如何解决这个问题,只是简单地提取JSON中的值吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

错误说明了一切。你正在传递一个它需要一个对象的数组。

要解决您的错误,您应该从JSON字符串中删除方括号([])。

对象如下:

{
    key: 'value'
}

数组的位置如下:

[
    { key: 'value' },
    1,
    'some string'
]

答案 1 :(得分:2)

此JSON字符串是一个数组,而不是对象,而不是开头的方括号(look here)。请改用JSONArray,然后从中提取JSONObject