java - JSON 解析。位置 2 处出现意外字符 (t)。JAVA

标签 java json parsing

我正在尝试解析来自 google map 搜索的 JSON 数据。 我已经尝试过 JACKSON,现在我正在尝试 JSON SIMPLE。他们都给出了相同的错误。

首先,我在 Google map 上进行搜索。

String urlString = "http://maps.google.com/maps?f=q&source=s_q&output=json&start=0&q="+ "Stockholm" + "+Gym";

给我 JSON while(1);{title:"斯德哥尔摩健身房 - Google map ",url:"/maps?f=q\x26source=s_q\x26start=0\x26q=stockholm+Gym\x26ie=UTF8\x26hq=健身房............等等。 我正在替换 while(1);和 ””;在我返回字符串之前。

当我尝试解析它时遇到问题

JSONParser parser = new JSONParser();

    String jsonString = "";

//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);

这给了我一个异常(exception)。 位置 2 处出现意外字符 (t)。

当我调试它时。一直到它尝试解析字符串时。那么 obj = null。

我到底做错了什么。

谢谢!

最佳答案

正如其他人已经提到的,不带引号的字段名称不是标准 JSON。然而, jackson (也许还有其他人)有一个 set of option settings允许它与非标准但常见的 JSON 衍生品一起使用:

JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES

将启用不带引号的字段名称的处理。

关于java - JSON 解析。位置 2 处出现意外字符 (t)。JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15026233/

相关文章:

java - 创建一个 Android 指示灯

java - Eclipse 可以在不添加通配符的情况下自动完成导入语句吗?

java - 如何为所有实体设置 eclipselink 缓存过期?

java - Android HMAC显示意外错误

arrays - Azure 逻辑应用程序将 XML 转换为 JSON,但将对象的一项数组视为一个对象,在解析 JSON 时如何处理它?

java - Android为动态创建的列表设置点击事件

javascript - json 调用受 Access-Control-Allow-Origin 阻碍

c++ - 如何存储多次插件解析的函数表达式?

javascript - 帮助创建 peg.js 解析器

java - 如何在 Android 应用程序上使用 JSON 解析的 Activity 之间传递字符串?