我正在尝试解析谷歌地图搜索中的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.
在世界上我做错了什么.
谢谢!
正如其他人已经提到的那样,非引用字段名称不是标准JSON.但是,杰克逊(以及其他人)有一套选项设置,允许它使用非标准但常见的JSON衍生物:
JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES
Run Code Online (Sandbox Code Playgroud)
将启用未加引号的字段名称的处理.
| 归档时间: |
|
| 查看次数: |
25662 次 |
| 最近记录: |