英文:
Creating a JSONObject from string - Expected a ':' after a key at 2770 [character 2771 line 1]
问题
以下是翻译好的内容:
我正在尝试将由StringBuilder构建的字符串转换为JSONObject。我正在使用以下代码创建JSONObject:
StringBuilder ret = new StringBuilder();
// 一些代码来构建字符串... ...
JSONObject returnObject = null;
try {
returnObject = new JSONObject(ret.toString());
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return returnObject;
问题在于,这段代码给我以下错误:
在2770号字符[第1行]之后预期一个':'。
我正在尝试转换的字符串(样本)如下所示:
[
{
"data":{"PHONE":"4567899874","STATE":"State1","FIRSTNAME":"Test1","EMAIL":null,"CITY":"New York","LASTNAME":"TestLast"}
},
{
"data":{"PHONE":"6457870022","STATE":"State2","FIRSTNAME":"FirstTestUpdate2","EMAIL":"last2first2@abc.com","CITY":"City2","LASTNAME":"LastTestUpdate2"}
},
{
"data":{"PHONE":"6457870003","STATE":"State3","FIRSTNAME":"FirstTestDemo3","EMAIL":"last3first3@abc.com","CITY":"City3","LASTNAME":"Last3"}
},
{"data":{"PHONE":"6457870004","STATE":"State4","FIRSTNAME":"First4","EMAIL":"last4first4@abc.com","CITY":"City4","LASTNAME":"Last4"}
},
{
"data":{"PHONE":"6457870005","STATE":"State5","FIRSTNAME":"First5","EMAIL":"last5first5@abc.com","CITY":"City5","LASTNAME":"Last5"}
},
{
"data":{"PHONE":"6457870006","STATE":"State6","FIRSTNAME":"First6","EMAIL":"last6first6@abc.com","CITY":"City6","LASTNAME":"Last6"}
},
{
"data":{"PHONE":"6845987894","STATE":"State7","FIRSTNAME":"TestFirstSA","EMAIL":null,"CITY":"City7","LASTNAME":"TestSA"}
}
]
当我尝试使用此在线工具转换此字符串时,它可以正确解析。我在stackoverflow上看到了一些其他问题类似于这个,并尝试使用他们的方法,但仍然出现错误。有什么建议可以改变以消除错误?
英文:
I am trying to conver a string build by StringBuilder to JSONObject. The code I am using to create a JSONObject is as follows
StringBuilder ret = new StringBuilder();
//SOME CODE TO MAKE THE STRING ... ...
JSONObject returnObject = null;
try {
returnObject = new JSONObject(ret.toString());
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return returnObject;
The problem is that this code is giving me following error
Expected a ':' after a key at 2770 [character 2771 line 1]
The string (Sample) I am trying to convert is as follows
[
{
"data":{"PHONE":"4567899874","STATE":"State1","FIRSTNAME":"Test1","EMAIL":null,"CITY":"New York","LASTNAME":"TestLast"}
},
{
"data":{"PHONE":"6457870022","STATE":"State2","FIRSTNAME":"FirstTestUpdate2","EMAIL":"last2first2@abc.com","CITY":"City2","LASTNAME":"LastTestUpdate2"}
},
{
"data":{"PHONE":"6457870003","STATE":"State3","FIRSTNAME":"FirstTestDemo3","EMAIL":"last3first3@abc.com","CITY":"City3","LASTNAME":"Last3"}
},
{"data":{"PHONE":"6457870004","STATE":"State4","FIRSTNAME":"First4","EMAIL":"last4first4@abc.com","CITY":"City4","LASTNAME":"Last4"}
},
{
"data":{"PHONE":"6457870005","STATE":"State5","FIRSTNAME":"First5","EMAIL":"last5first5@abc.com","CITY":"City5","LASTNAME":"Last5"}
},
{
"data":{"PHONE":"6457870006","STATE":"State6","FIRSTNAME":"First6","EMAIL":"last6first6@abc.com","CITY":"City6","LASTNAME":"Last6"}
},
{
"data":{"PHONE":"6845987894","STATE":"State7","FIRSTNAME":"TestFirstSA","EMAIL":null,"CITY":"City7","LASTNAME":"TestSA"}
}
]
When I try to convert this string using This Online Tool then it is parsing correctly. I saw some other questions in stackoverflow like this and tried to use their method but still getting error. Any suggestion what change could make the error go away.
答案1
得分: 1
你已经快要成功了!你使用的库不够智能,就像Jackson一样。你必须手动设置,表明你尝试解析的是JsonArray
,而不是JsonObject
。
String jsonArray = "[]";
JSONArray arr = new JSONArray(jsonArray);
String jsonObject = "{}";
JSONObject obj = new JSONObject(jsonObject);
英文:
You're almost there! Lib you use is not so smart like Jackson. You have to manually set that you try to parse an JsonArray
, but not JsonObject
.
String jsonArray = "[]";
JSONArray arr = new JSONArray(jsonArray);
String jsonObject = "{}";
JSONObject obj = new JSONObject(jsonObject);
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论