我正在存储REST Get请求的响应并尝试访问,如下所示
final JSONObject receivedItem = new JSONObject(response.readEntity(String.class));
这是样本回复,
[
{
"timeStamp": 1511136000000,
"contextKeys": [
{
"tKey": "Test1",
"contextKey": "Location",
"contextValue": "San Jose",
"eCount": 3
},
{
"tKey": "Test1",
"contextKey": "Name",
"contextValue": "User1",
"eCount": 3
}
}
]
我收到以下错误,
org.json.JSONException: A JSONObject text must begin with '{' at character 1
at org.json.JSONTokener.syntaxError(JSONTokener.java:496)
at org.json.JSONObject.<init>(JSONObject.java:180)
at org.json.JSONObject.<init>(JSONObject.java:403)
任何线索?
由于
答案 0 :(得分:1)
如果您的问题在于存储和访问json响应,请尝试此响应;
我假设您使用的是javascript;无论如何,核心理念是一样的;
var jsonStorage;
$.getJSON('your url',(json) => {
jsonStorage = json;
});
console.log(jsonStorage) //your jsonresponse is now available here;
答案 1 :(得分:1)
正如Rajkumar指出的那样,在你的例子中有一个缺少的近距离括号 - 但这可能只是一个简单的输入错误。
实际的错误消息是A JSONObject text must begin with '{'
,这是因为JSON对象就是对象。您需要使用JSONArray来解析示例JSON,如下所示:
final JSONArray receivedItem = new JSONArray(response.readEntity(String.class));
这可能会改变你的其他一些代码来处理这个数组与对象的对比。