2015-12-18 4 views
0

я использовал баночку json-lib-2.4-jdk15.jarJSONObject.fromObject в бесконечном цикле

JSONObject.fromObject("/*/*"); 

приведенный выше код в бесконечном цикле, это ошибка?

+0

Было бы полезно также предоставить ответ JSON. –

+0

синтаксический анализ может быть бесконечным – user2881624

ответ

0

Это обычно происходит, когда класс, который вы конвертируете в json, относится к самому себе ..... чаще всего, когда вы используете объекты jpa с одним или несколькими отношениями ... где родительский указатель относится ко многим детям, а ребенок снова ссылается на его родителя, чтобы вы могли каскадировать обновления.

Решения: 1- сделать переменную в детском преходящего ... но не будет работать в случае JPA, потому что вам нужно сущность атрибутов не переходная 2- сделать еще один DTO для передачи JSON, которая не содержат эту циклическую зависимость и карту от/до нее ...... но слишком много усилий и ошибок подвержены 3- чистый путь (код, который я предоставил для библиотеки Google Gson, проверьте, есть ли подобная опция в вашей банке) : исключить переменную из разбора gson, как? Отметить все атрибуты, которые вы хотите, чтобы быть проанализированы с @Expose аннотации ...., а затем по созданию использования объекта JSON:.

GsonBuilder.excludeFieldsWithoutExposeAnnotation() создать()

Теперь обнаженный атрибут не выиграл 't быть преобразовано в json

Смежные вопросы