Ответ 1
Я полагаю, что вы должны использовать не JSONObject, а JSONArray
У меня есть этот JSON, который приходит из одной из наших служб REST:
[
"{\"category_name\":[\"Industry Components\"],\"categoryId\":[1]}",
"{\"category_name\":[\"Business Components\"],\"categoryId\":[2]}",
"{\"category_name\":[\"Utilities\"],\"categoryId\":[3]}",
"{\"category_name\":[\"Tools\"],\"categoryId\":[4]}
]
Я использую java-json.jar для синтаксического анализа этого JSON, это простой фрагмент, в котором я пытаюсь пройти над строкой JSON:
JSONObject jsonObject = new JSONObject(jsonStr);
Но я получаю ниже исключения:
org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]
Сначала я предположил это из-за символов [
и ]
в JSON, и я попытался заменить их следующим образом:
String replacedStr = jsonStr.replaceAll("\\[", "").replaceAll("\\]", "")
Но даже тогда я получаю такое же исключение. Может ли кто-нибудь помочь мне узнать, что я делаю неправильно?
Я полагаю, что вы должны использовать не JSONObject, а JSONArray
Объект JSON следует следующей структуре:
{
"array": [
{
color: "red",
value: "#f00"
},
{
color: "green",
value: "#0f0"
}
]
}
JSON Array следует следующей структуре:
[
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName": "Jones" }
]
Если вы получите текст JSONObject, начинайте с исключения '{'. Затем сначала проверьте, что вы передали в конструктор JSONObject.
Вы должны передать правый файл json.txt. Убедитесь, что вы переходите к jsonobject.
String request = FileUtils.readFileToString(new File("/home/achaure/Downloads/Amol/KountRestTest/Documents/request.txt"));
JSONObject jsonObject = new JSONObject(request);