Это действительный JSON? - PullRequest
5 голосов
/ 03 июня 2009
{"something":"1","mode":"true","number":"1234"}

Потому что я получаю 406 ожидая JSON.

Он генерируется через Джерси, которому говорят, что это метод @Produces JSON. Он принимается Dojo xhrGet, в качестве дескриптора которого установлен JSON.

РЕДАКТИРОВАТЬ - Чтобы уточнить, я не заинтересован в коде, где я оцениваю или что-то в этом роде. Вопрос был очень прост - действительно ли это JSON?

Ответы [ 5 ]

14 голосов
/ 03 июня 2009

Да, но у вас есть как логические (mode), так и числовые (number) элементы в виде строк. Не должно ли это быть:

{"something":"1","mode":true,"number":1234}
7 голосов
/ 03 июня 2009

Это действительно JSON, если все значения словаря являются строками. Это также верно JSON:

{"что-то": 1, "mode": true, "number": 1234}

Однако обычно возникает ошибка 406, когда вы запрашиваете тип ответа (например, html или json), и сервер не может отправить его в этом типе. Почему вы думаете, что ввод неверен?

6 голосов
/ 09 сентября 2009

Я использую простой инструмент копирования / вставки под названием JASONLint (http://www.jsonlint.com/), чтобы проверить мои горы JSON. Вы можете копать это.

1 голос
/ 03 июня 2009

Если вы хотите использовать числа напрямую, вы не должны заключать их в кавычки. Это действительно JSON, но есть вероятность, что вы хотите сделать следующее:

{ "что-то": 1, "Режим": "правда", "номер": 1234}

Вам нужно добавить больше информации, если вы хотите получить лучшие ответы.

РЕДАКТИРОВАТЬ: Э ... и да, логическое значение также не должно быть заключено в кавычки, если только вы не хотите преобразовать его самостоятельно, по некоторым причинам.

0 голосов
/ 03 июня 2009
  • да, это действительно JSON
  • хотя, если вы планируете выводить это как результат HTTP-запроса, вам нужно экранировать все кавычки

$ str = "{\" что-то \ ": \" 1 \ ", \" mode \ ": \" true \ ", \" number \ ": \" 1234 \ "}"; echo $ str

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...