2014-01-27 2 views
0
note: 
{"category_id":"1","name":"Notes","icon":"images\/note.png"}, 
quote: 
{"category_id":"2","name":"Quotes","icon":"images\/quote.png"}, 
project: 
{"category_id":"3","name":"Projects","icon":"images\/project.png"}, 
skill: 
{"category_id":"4","name":"Skills","icon":"images\/skill.png"} 

Это то, что показано на моей консоли. Я использовал json_decode для моего запроса и объединил строку, и я полагал, что это вызвано проблемой.перевод строки данных в формат json

так как превратить данные струны в формат json?

+2

Я сам не понимаю проблему. – Tigran

+0

@ Тигран предположил, что блок кода является строкой, преобразует их в объект – user3189052

+0

Ну, вы не можете преобразовать объект в объект. Вы можете создать объект с параметрами, некоторые из которых могут быть из вашей строки. Как я вижу, вам нужен 4 объекта, каждый из которых имеет (id, имя и ссылку на значок), правильно? – Tigran

ответ

0

вы можете использовать JSON.parse(string) это вернет вам JSON из вашей строки

+0

Вы пытаетесь сделать это, прежде чем опубликовать этот ответ? – Frogmouth

5

Если это строка, то я предлагаю, чтобы обернуть его в { ... } и использовать `JSON.parse. То есть:

var json = JSON.parse('{' + string + '}'); 

Конечно вам нужно будет добавить JSON Lib помощника на вашу страницу https://github.com/douglascrockford/JSON-js

+0

не может быть сделано в php? Я не хочу включать лишние вещи. – user3189052

+0

+1 для ** {** добавить ... но я думаю, что @ user3189052 имеет другие проблемы перед разбором строк JS. – Frogmouth

+0

ИСПОЛЬЗОВАНИЕ: 'json_encode()' в строку ** VALID ** json. – Frogmouth

0

Я думаю, что у вас есть проблема с PHP не с Javascript:

вы декодированная строкой JSON для trasform его в объекте PHP с json_decode работать с ним ... но теперь вы должны вернуть его в строку JSON в формате хорошо.

Но первая ваша строка является недействительным, для стандарта JSON (в PHP):

  1. заключите строку в {
  2. имя свойства записки, цитаты, проект, умение должны быть инкапсулируют внутри " , ваша новая строка:

    { "примечание": { "cATEGORY_ID": "1", "имя": "Записки", "значок": "изображения/note.png "}, " quote ": {" category_id ":" 2 "," name ":" Quotes "," icon ":" images/quote.png "}, " project "{" category_id ": «3», «name»: «Projects», «icon»: «images/project.png»}, «skill»: {"category_id": "4", "name": "Skills", "icon" : "изображения/skill.png"}}

и теперь видим этот пример JSON encodingi в PHP:

$yourString = '{"note":{"category_id":"1","name":"Notes","icon":"images\/note.png"},"quote":{"category_id":"2","name":"Quotes","icon":"images\/quote.png"},"project":{"category_id":"3","name":"Projects","icon":"images\/project.png"},"skill":{"category_id":"4","name":"Skills","icon":"images\/skill.png"}}'; 
$JSON_FOR_PHP = json_decode($yourString); 
$JSON_FOR_JS = json_encode($JSON_FOR_PHP); 

/* response: */ 
echo "JSON for PHP (associative Array):<br><br>"; 
var_dump($JSON_FOR_PHP); 
echo"<br><br>"; 
echo "JSON for JAVASCRIPT (JSON string {add content type: application/json}):<br><br>"; 
echo $JSON_FOR_JS; 

ответ:

JSON for PHP (associative Array): 

object(stdClass)#1 (4) { ["note"]=> object(stdClass)#2 (3) { ["category_id"]=> string(1) "1" ["name"]=> string(5) "Notes" ["icon"]=> string(15) "images/note.png" } ["quote"]=> object(stdClass)#3 (3) { ["category_id"]=> string(1) "2" ["name"]=> string(6) "Quotes" ["icon"]=> string(16) "images/quote.png" } ["project"]=> object(stdClass)#4 (3) { ["category_id"]=> string(1) "3" ["name"]=> string(8) "Projects" ["icon"]=> string(18) "images/project.png" } ["skill"]=> object(stdClass)#5 (3) { ["category_id"]=> string(1) "4" ["name"]=> string(6) "Skills" ["icon"]=> string(16) "images/skill.png" } } 

JSON for JAVASCRIPT (JSON string {add content type: text/json}): 

{"note":{"category_id":"1","name":"Notes","icon":"images\/note.png"},"quote":{"category_id":"2","name":"Quotes","icon":"images\/quote.png"},"project":{"category_id":"3","name":"Projects","icon":"images\/project.png"},"skill":{"category_id":"4","name":"Skills","icon":"images\/skill.png"}} 

, если эхо только $JSON_FOR_JS и изменить тип содержимого приложения/JSON вы получите ответ является допустимым JSON строка, которую можно разобрать с JSON.parse() в JavaScript:

header('Content-Type: application/json'); 
echo $JSON_FOR_JS; 

или эхо его непосредственно в скрипте JS (html-страница или без тега скрипта в файле .js):

var js_json = JSON.parse();

сейчас в javascript у вас есть объект js_json с содержимым вашей строки.

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