【发布时间】:2013-06-25 22:14:16
【问题描述】:
我正在尝试在以下位置解析此股票信息:
http://www.google.com/finance/info?client=ig&q=csco
那是 JSON 格式的地图,基本上遵循本教程,我看到使用 quick-json jar,但它一直给我一个异常,我不知道为什么。这是代码,非常感谢任何帮助
教程链接:https://code.google.com/p/quick-json/
public static void main(String args[]) throws IOException
{
String value="";
URL uri = new URL("http://www.google.com/finance/info?client=ig&q=csco");
BufferedReader input = new BufferedReader(new InputStreamReader(uri.openStream(), "UTF-8"));
while(input.readLine()!=null)
{
value+=input.readLine();
}
JsonParserFactory factory = JsonParserFactory.getInstance();
JSONParser parse = factory.newJsonParser();
Map jsonData =parse.parseJson(value);
System.out.println((String)jsonData.get("e"));
}
这是我得到的例外:
Exception in thread "main" com.json.exceptions.JSONParsingException: @Key-Heirarchy::root[0]/ @Key:: COMMA or ] is expected. but found :...@Position::5
at com.json.utils.JSONUtility.handleFailure(JSONUtility.java:124)
at com.json.parsers.JSONParser.stringLiteralTemplate(JSONParser.java:574)
at com.json.parsers.JSONParser.nonValidatingValueTemplate(JSONParser.java:698)
at com.json.parsers.JSONParser.jsonArrayTemplate(JSONParser.java:454)
at com.json.parsers.JSONParser.parseJson(JSONParser.java:170)
at parser.Scratch.main(Scratch.java:27)
编辑:我也试过 Map jsonData =parse.parseJson(value.substring(3) 从 [ 开始,但它仍然给我一个错误
【问题讨论】:
-
它在异常情况下告诉您输入的部分没有预期的分隔符。
-
是的,但据我所知它的格式正确,所以我不知道为什么它告诉它不是
-
在 while 循环期间,您似乎在“value”内每 2 个 readLine() 添加 1 行。
-
//在这里无法解析 -
使用您可以通过 Google 找到的多个“Online JSON parser”网页之一来验证您的 JSON。