我正在尝试通过网址阅读json。这是我的努力:
public String getContentByUrl(String url) throws IOException, JSONException {
JSONObject json = new JSONObject(IOUtils.toString(new URL(url), Charset.forName("UTF-8")));
return json.toString();
}
抛出
JSONObject文本必须以2 [字符3第1行]
处的'{'开头
我也试过JSONPObject
,但它没有这样的构造函数。怎么办?
答案 0 :(得分:1)
根据我的知识和JSON API,您只需使用JSONObject
尝试一个String
构造函数。
在API中,它表示String
来源必须是:
以{(左括号)开头并以}结尾的字符串(右 大括号)。
因此,典型的用例是请求页面内容并通过构造函数将结果解析为JSONObject
,而不是传递完整的URL。已经在stackoverflow上的几篇帖子中描述了这一点(例如Get a JSON object from a HTTP response)
编辑:
我猜http://jsonformatter.curiousconcept.com/接受您网址的内容为合法JSON,因为它将括号([ ]
)识别为JSONArray
。
如果您将“JSON”放入http://jsonlint.com/,例如它就会显示为什么它不能成为JSONObject
。