2016-07-18 2 views
-1

У меня есть строка JSON, которая «является» действительной JSON, в соответствии с JSON.parse JavaScript и некоторыми онлайн-валидаторами JSON. Однако json_decode PHP говорит, что есть синтаксическая ошибка, и я за жизнь меня не могу найти, где она/они есть.PHP json_decode() Ошибка

Вот моя JSON строка, http://pastebin.com/pVLmUzQ5 (она превышает длину пост StackOverflow)

редактировать:

JSON содержит некоторые поля этой структуры:

"pets":{"":null} 

Edit: Что-то я забыл что я вставляю JSON в форму POST и получаю данные из метода Input :: post() CodeIgniter с включенной глобальной очисткой XSS. Который, кажется, вызывает проблему. Который я смог определить из сообщения ниже, и все сообщения, в которых говорится, что PHP правильно его декодирует.

+0

Да, этот JSON выглядит действительным. Поскольку нам больше нечего делать дальше, мы больше ничего не можем сделать для вас. – deceze

+1

Ваша строка JSON действительна, и PHP счастливо разбирает ее. Я тестировал все версии с 5.3 до 7.0, и никто из них не жаловался на это. – axiac

+2

Какова конкретная ошибка, которую вы получаете? – Barmar

ответ

3

Ваш JSON выглядит правильно для меня. Я предполагаю, что вы пытаетесь обернуть JSON в одиночные или двойные кавычки, которые не будут работать, потому что ваша строка содержит оба этих символа, которые не привязаны.

Попробуйте обертывание ваш JSON в HEREDOC, а затем разбор его:

<?php 

$json = <<<EOL 
{"foo":"here is a single quote '"} 
EOL; 

$decoded = json_decode($json); 
var_dump($decoded); 

Пожалуйста, замените мой пример JSON с вашими.

+0

Я на самом деле не вставляю вручную строку. Я беру строку из iFrame со своего сайта и вставляю ее в