我将JSON数组作为字符串值获取,我需要使用它创建一个JSON对象。数组代码是这样的。
{"eventsList" : [
"requestId" : "82334-adf86d-8bac8ef-289c"
events:[
{
"eventType" : "receiveLocation_Event",
"externalId" : "973af2f8-820b-457b-89c2",
"description" : "Test Event",
"whenOccurred" : "06-Aug-2013 07.15.01.0 AM",
"partnerId" : "cecdbd94-ac60-4db0-b7f2",
"tagsAndValues" : {
"locationAccuracy" : "10",
"attr2" : "value2"
},
"count" : "2"
},
{
"eventType" : "SEND_SMS_sendSmsEvent",
"externalId" : "45af4f8-87-4f42b-832abc",
"description" : "Another Test Event",
"whenOccurred" : "06-Aug-2013 08.16.01.0 AM",
"partnerId" : "cecdbd94-ac60-4db0-b7f2",
"tagsAndValues" : {
"messageLength" : "135",
"attrX" : "valueX"
},
"count" : "1"
}
]
}
]
}
我尝试使用下面的代码行
创建一个JSON对象SONObject jsonObject = new JSONObject(string);
我在运行时遇到错误。
org.json.JSONException: Expected a ',' or ']' at character 35
at org.json.JSONTokener.syntaxError(JSONTokener.java:413)
at org.json.JSONArray.<init>(JSONArray.java:143)
at org.json.JSONTokener.nextValue(JSONTokener.java:351)
at org.json.JSONObject.<init>(JSONObject.java:206)
at org.json.JSONObject.<init>(JSONObject.java:420)
请帮我解决这个问题。
答案 0 :(得分:2)
有几个错误。
在[
之后,预计会出现以逗号分隔的值列表,但"requestId"
后面会有冒号。您可能意味着第1行的[
为{
。
鉴于上一期,您可能需要"82334-adf86d-8bac8ef-289c"
之后的逗号
如果您将文本放入在线JSON格式化程序和验证程序(例如this one),它将指出您的所有错误。
答案 1 :(得分:1)
问题在这里: ... &#34;的requestId&#34; :&#34; 82334-adf86d-8bac8ef-289c&#34; 事件:...
你忘记了一些标点符号: ... &#34;的requestId&#34; :&#34; 82334-adf86d-8bac8ef-289c&#34;, &#34;事件&#34;:......
使用此代替这是JSON语法。所有键都是字符串。
答案 2 :(得分:1)
String应该是这样的;
{"eventsList" : [
{"requestId" : "82334-adf86d-8bac8ef-289c"},
{ "events":[
{
"eventType" : "receiveLocation_Event",
"externalId" : "973af2f8-820b-457b-89c2",
"description" : "Test Event",
"whenOccurred" : "06-Aug-2013 07.15.01.0 AM",
"partnerId" : "cecdbd94-ac60-4db0-b7f2",
"tagsAndValues" : {
"locationAccuracy" : "10",
"attr2" : "value2"
},
"count" : "2"
},
{
"eventType" : "SEND_SMS_sendSmsEvent",
"externalId" : "45af4f8-87-4f42b-832abc",
"description" : "Another Test Event",
"whenOccurred" : "06-Aug-2013 08.16.01.0 AM",
"partnerId" : "cecdbd94-ac60-4db0-b7f2",
"tagsAndValues" : {
"messageLength" : "135",
"attrX" : "valueX"
},
"count" : "1"
}
]
}
]
}
requestId和event必须是这样的:{"requestId" : "82334-adf86d-8bac8ef-289c"},
{ "events":
关闭内部JSONArray后,必须关闭}