有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

引发异常的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) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

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

    要修复错误,应该从JSON字符串中删除方括号([]

    一个对象看起来像:

    {
        key: 'value'
    }
    

    其中,数组的形状如下所示:

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