2014-11-06 2 views
0

У меня есть json, отправленный на мой сайт playframework как byte[] с использованием метода POST.Джексон Джон не правильно читает мой json

Вот пример JSON

{ 
    "productFamily": "abcd", 
    "currentVersion": "12d11e3", 
    "serialNumber": "asdfasfdasdf", 
    "modelNumber": "sdfsfdasf", 
    "productCode": "safasdfsdfasdfsdfsd" 
} 

Я пытаюсь загрузить его в JsonNode, используя этот код:

public static Result submit() { 
    JsonNode recievedJson = request().body().asJson(); 

Eclipse, отлаживать говорит recievedJson имеет

_value = "{\r\n "productFamily": "abcd",\r\n "currentVersion": "12d11e3",\r\n "serialNumber": "asdfasfdasdf",\r\n "modelNumber": "sdfsfdasf",\r\n "productCode": "safasdfsdfasdfsdfsd"}" 

Почему моя строка json не анализируется из тела запроса в JsonNode obj?

Когда я пытаюсь вызвать методы JsonNode на recievedJson Я не получаю ожидаемых результатов. например recievedJson.get(0) возвращает null и recievedJson.fields() возвращает null

элемент объекта = recievedJson.get ("productFamily"); Eclipse debug показывает item = null.

Объект item = recievedJson.fields(); возвращает пустой итератор

+1

Что? Отладка Eclipse показывает представление объекта. Что с этим не так? –

+0

Когда я пытаюсь вызвать методы JsonNode на recievedJson, я не получаю ожидаемых результатов. например, recievedJson.get (0) возвращает null и recievedJson.fields() возвращает null – visc

+0

Что делает 'JsonNode # get (int)' do? Пожалуйста, покажите нам, что 'JsonNode # fields()' возвращает 'null' в вашем случае. Предоставьте воспроизводимый пример. –

ответ

0

Вы пытаетесь получить доступ к узлу массива с помощью метода get(int), тогда как ваш json является объектом. Вместо этого попробуйте использовать методы get(String), где String - ваше ключевое имя.

+0

Нет, я пробовал это. Проверьте мои изменения – visc

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