我正在尝试解析来自 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/