2015-03-10 3 views
0

JSON декодирования в PHP нуждается в JSON отформатирован с именами полей, заключенных в двойные кавычки, как:PHP JSON двойные кавычки требование

{"foo-bar": 12345, "myName": "Johnnie"} 

Но я должен разобрать некоторые относительно сложный JSON, сделанное приложением Java, который отформатирован с именами без двойных котировок на названиях полей, таких как:

{foo-bar: 13456, myName: "Johnnie"} 

... но сложнее. Есть ли какой-то простой способ исправить это или я ввернусь?

+1

Какой json-парсер вы используете на стороне Java? Правильный вариант будет с двойными кавычками. Если вы используете Jackson, его можно настроить. – facundofarias

+2

Требование, которое вы описываете, является требованием JSON, а не PHP. Данные, созданные Java-приложением, просто не являются JSON. Это даже не действительный синтаксис JavaScript (поскольку идентификаторы не могут иметь в них дефисы). – Quentin

+0

Я не уверен, какой парсер используется на стороне Java, я просто получил неверно отформатированные данные. Что касается дефисов, это только с сайта PHP, я не думаю, что в именах полей есть дефисы в строках, которые у меня есть. Может ли PHP разбирать Javascript аналогичным образом? – TimSim

ответ

0

Данное требование соответствует спецификации JSON. Если вы посмотрите на диаграммы в http://json.org/, вы увидите, что объект состоит из пар строк: значение.

JSON object description

Строка определяется иметь кавычки ограждающих Unicode символов.

JSON sring description

данные, которые вы не действительны JSON.

+0

Да, я знаю об этом. Я ищу решение. – TimSim

+0

Исправить данные или написать собственный парсер, встроенный PHP не предоставляет ничего, что действительно помогает. Может быть, менее строгий парсер уже существует? - Я не знаю. – johannes

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