Текст JSONObject должен начинаться с ошибки '{'

У меня есть этот 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("\\]", "")

Но даже тогда я получаю такое же исключение. Может ли кто-нибудь помочь мне узнать, что я делаю неправильно?

Ответы

Ответ 1

Я полагаю, что вы должны использовать не JSONObject, а JSONArray

Ответ 2

Объект JSON следует следующей структуре:

{
 "array": [
{
    color: "red",
    value: "#f00"
},
{
    color: "green",
    value: "#0f0"
}
]
}

JSON Array следует следующей структуре:

[
 { "firstName":"John" , "lastName":"Doe" }, 
 { "firstName":"Anna" , "lastName":"Smith" }, 
 { "firstName":"Peter" , "lastName": "Jones" }
]

Ответ 3

Если вы получите текст JSONObject, начинайте с исключения '{'. Затем сначала проверьте, что вы передали в конструктор JSONObject.

Вы должны передать правый файл json.txt. Убедитесь, что вы переходите к jsonobject.

String request = FileUtils.readFileToString(new File("/home/achaure/Downloads/Amol/KountRestTest/Documents/request.txt"));

JSONObject jsonObject = new JSONObject(request);