JSON解析.JAVA位于第2位的意外字符(t)

0 java parsing json

我正在尝试解析谷歌地图搜索中的JSON数据.我已经尝试了JACKSON和现在我正在尝试JSON SIMPLE.它们都给出了同样的错误.

首先,我正在Google地图上进行搜索.

String urlString = "http://maps.google.com/maps?f=q&source=s_q&output=json&start=0&q="+ "Stockholm" + "+Gym";
Run Code Online (Sandbox Code Playgroud)

给我JSON while(1); {title:"stockholm Gym - Google Maps",url:"/ maps?f = q\x26source = s_q\x26start = 0\x26q = stockholm + Gym\x26ie = UTF8\x26hq = Gym ...............依此类推.我正在替换while(1);用"";在我返回字符串之前.

当我试图解析它时的问题

JSONParser parser = new JSONParser();

    String jsonString = "";
Run Code Online (Sandbox Code Playgroud)

// UriHandler.mapSearchJson是返回jsonString的方法.

    String jsonData = UriHandler.mapSearchJSON(jsonString);

    Object obj = "";
    try {

        obj = parser.parse(jsonData);

    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    JSONObject jsonObj = (JSONObject) obj;

    String title = (String) jsonObj.get("title");
    System.out.println(title);
Run Code Online (Sandbox Code Playgroud)

这给了我一个例外.位置2处的意外字符(t).

当我对它进行补偿时.当它试图解析字符串时一路走来.那么obj = null.

在世界上我做错了什么.

谢谢!

fvu*_*fvu 8

正如其他人已经提到的那样,非引用字段名称不是标准JSON.但是,杰克逊(以及其他人)有一套选项设置,允许它使用非标准但常见的JSON衍生物:

JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES
Run Code Online (Sandbox Code Playgroud)

将启用未加引号的字段名称的处理.