2014-09-03 4 views
0

Я продолжаю получать NULL, когда я делаю $data = json_decode($data);. Чтобы закодировать его в JS, я использую var data = JSON.stringify(my_obj); Что не так с этой строкой JSON?Что не так с этой строкой JSON?

'guide' => string (1583) "[{\"instructions\":[\"sdasda\"],\"media\":[{\"id\":95,\"titl …" 

EDIT:

Я добавляю всю строку в соответствии с просьбой:

[{\"instructions\":[\"sdasda\"],\"media\":[{\"id\":95,\"title\":\"item4_1444\",\"filename\":\"item4_1444.jpg\",\"url\":\"http://localhost:8888/sandbox/content/uploads/2014/08/item4_1444.jpg\",\"link\":\"http://localhost:8888/sandbox/example/change-phone-home-button/item4_1444/\",\"alt\":\"\",\"author\":\"1\",\"description\":\"\",\"caption\":\"\",\"name\":\"item4_1444\",\"status\":\"inherit\",\"uploadedTo\":86,\"date\":\"2014-08-24T16:39:15.000Z\",\"modified\":\"2014-08-24T16:39:15.000Z\",\"menuOrder\":0,\"mime\":\"image/jpeg\",\"type\":\"image\",\"subtype\":\"jpeg\",\"icon\":\"http://localhost:8888/sandbox/includes/images/media/default.png\",\"dateFormatted\":\"24/08/2014\",\"nonces\":{\"update\":\"46bbaaed37\",\"delete\":\"bcda3390c5\",\"edit\":\"ea35506ec2\"},\"editLink\":\"http://localhost:8888/sandbox/admin/post.php?post=95&action=edit\",\"sizes\":{\"thumbnail\":{\"height\":150,\"width\":150,\"url\":\"http://localhost:8888/sandbox/content/uploads/2014/08/item4_1444-150x150.jpg\",\"orientation\":\"landscape\"},\"medium\":{\"height\":300,\"width\":200,\"url\":\"http://localhost:8888/sandbox/content/uploads/2014/08/item4_1444-200x300.jpg\",\"orientation\":\"portrait\"},\"full\":{\"url\":\"http://localhost:8888/sandbox/content/uploads/2014/08/item4_1444.jpg\",\"height\":960,\"width\":640,\"orientation\":\"portrait\"}},\"height\":960,\"width\":640,\"orientation\":\"portrait\",\"compat\":{\"item\":\"\",\"meta\":\"\"},\"html_id\":\"ge-step-image-1\"}]}] 
+2

Вы должны, вероятно, опубликовать всю строку, а не разрезать, если она выключена. Мы не сможем выяснить, есть ли что-то неправильное, если мы не можем все это увидеть. – ZombieCode

+1

Попробуйте искать в Интернете валидатор '. –

+1

У вас не должно быть косой черты перед кавычками.Вы показываете результаты на языке, который автоматически ускользает от них в строке? Кажется, что это обычные кавычки, тогда документ проверяется. – MrFlick

ответ

1

Там нет ничего плохого в формате JSON, кроме того, что двойные кавычки, которые предполагается для разграничения строковых значений в JSON были закодированы так, как если бы они были двойными кавычками в пределах строки JSON.

Например:

\"instructions\": 

Должен быть просто:

"instructions": 

Чтобы проиллюстрировать, как двойные кавычки маскирование предназначено для работы в формате JSON, рассмотрит кодирующий объект с одного элементом с именем высотой со строковым значением 6'2 ":

height: 6'2" 

закодированные в формате JSON это будет:

{ "height": "6'2\"" } 

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

В дополнение к этому, конечно, как вы кодируете свою строку для данного языка исходного кода.

Если вы используете литеральную строку в своем источнике, которая сама по себе ограничивает двойную кавычку или помещает специальную интерпретацию в '\', тогда вы должны принять соглашения, требуемые исходным языком при кодировании ваших литералов.

Опять же, в качестве примера, рассмотрим, как выше строка будет представлена ​​на двух разных языках:

// C# 
s = "{ \"height\": \"6'2\\\"\" }"; 

// Delphi 
s := '{ "height": "6''2\"" }'; 

В C#, так как «\» отмечает сбежавшего символ затем «\» в формате JSON должен сам быть спасен. Символы двойной кавычки также должны быть экранированы, поскольку строковые литералы C# также ограничены двойной кавычкой.

В Delphi строковые литералы одинарной кавычки ограничены, поэтому нет необходимости избегать двойных кавычек, но в одной строке должно быть одной кавычки. В Delphi это предполагает только удвоение одиночной последовательности кавычек, и нет необходимости вообще скрывать символы «\» или «».

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

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