Поместите JSONObject в JSONArray или наоборот, добавьте дополнительные обратные косые черты в массив JSON — Android

Когда я создаю объект json и добавляю его в массив json, он добавляет дополнительные обратные косые черты:/

1) Создание JSONObject

        JSONObject jo = new JSONObject();
        jo.put("JobName", "Test - Job Name");
        jo.put("JobStatus", "Current");
        jo.put("OrganID", "123");
        jo.put("Date_Entered", getDate());

Результат:

{"OrganID":"123","JobName":"Test - Job Name","Date_Entered":"13-Apr-2015","JobStatus":"Current"}

2) Добавление JSONObject в JSONArray

        JSONArray ja = new JSONArray();
        ja.put(jo);

Результат (он также ставит дополнительные двойные кавычки " до и после JSONObject):

["{\"OrganID\":\"123\",\"JobName\":\"Test - Job Name\",\"Date_Entered\":\"13-Apr-2015\",\"JobStatus\":\"Current\"}"]

3) Добавление JSONArray в JSONObject

        JSONObject finalJson = new JSONObject();
        finalJson.put("PostCompJob", ja.toString());

Результат:

{"PostCompJob":"[\"{\\\"OrganID\\\":\\\"123\\\",\\\"JobName\\\":\\\"Test - Job Name\\\",\\\"Date_Entered\\\":\\\"13-Apr-2015\\\",\\\"JobStatus\\\":\\\"Current\\\"}\"]"}  

Я не знаю, почему это происходит, может ли кто-нибудь помочь мне?


person Salmaan    schedule 13.04.2015    source источник
comment
Я думаю, что когда вы добавляете объекты в массив, он всегда добавляет косую черту за каждой строкой. Я не уверен. Но почему вы не используете объект вместо массива?? Попробуйте сделать объект Json на стороне сервиса. буду вам помогать.   -  person Ahmad Arslan    schedule 13.04.2015
comment
Я не могу воспроизвести ваш шаг 2. Используя System.out.println(ja);, я не получаю обратную косую черту. Шаг 3, безусловно, будет добавлять обратную косую черту, потому что вы пытаетесь представить JSON как строковое значение в JSON.   -  person Jon Skeet    schedule 13.04.2015
comment
Ну, я не знаю, почему добавляются обратные косые черты, скопировал этот код: stackoverflow.com/a/17810270/3828908 и все еще добавляет обратная косая черта:/ что может быть не так @JonSkeet   -  person Salmaan    schedule 13.04.2015
comment
Ну, вы не сказали нам, как вы наблюдаете обратную косую черту. Может быть, это просто проблема с просмотром строк в отладчике? Короткая, но полная программа (вне Android, просто как консольное приложение), демонстрирующая проблему, имела бы большое значение.   -  person Jon Skeet    schedule 13.04.2015


Ответы (1)


О, черт возьми, у меня такая же проблема, но с моей стороны это было связано с библиотекой AWS. Поскольку я использовал эту библиотеку в своем проекте, она автоматически импортирует JSONObject или JSONArray из библиотеки AWS всякий раз, когда я создавал этот объект. Косые черты создаются только тогда, когда я создал Json AWS. Если вы используете какую-то другую библиотеку, сначала проверьте.

person Ahmad Arslan    schedule 13.04.2015