我正在使用Bing的自动推荐功能自动建议我给出查询的条款。你可以在这里找到这个工具:http://api.bing.com/osjson.aspx?query=pe,因为你可以看到它返回一个不完全是JSON的奇怪格式。这是一个与JSON不同的特定标准吗?我试图使用...
将其解析为JSON InputStream i = new URL(url).openStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(i, Charset.forName("UTF-8")));
JSONObject json = new JSONObject(readAll(reader));
但我收到错误A JSONObject text must begin with '{' found:" at 2 [character 3 line 1]
readAll =
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
}
答案 0 :(得分:2)
您的示例是有效的JSON:
["pe",["people","people search","petsmart","petco","petfinder","pep boys","people finder","people of walmart"]]
它不是对象,它是数组,它包含第一个位置的字符串和第二个位置的另一个数组。因此,请尝试解析为JSONArray
,而不是JSONObject
。
答案 1 :(得分:0)
JSON对象以{
开头,以}
结尾,JSONObject
类旨在解析。
JSON数组以[
开头,以]
结尾,JSONArray
类旨在解析。
我希望这会有所帮助。