我认为你的问题是 PHP 而不是 Javascript:
您已经解码了一个 JSON 字符串,以便在 PHP 对象中使用 json_decode 对其进行转换...但是现在您必须以格式良好的 JSON 字符串取回它。
但首先你的字符串是无效的,对于 JSON 标准(在 PHP 中):
- 将您的字符串括在 { 中
-
属性的名称note、quote、project、skill必须封装在"中
,你的新字符串:
{
"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"}
}
现在看看这个 PHP 中 JSON 编码的例子:
$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 并将内容类型更改为 application/json,您会得到一个有效的 JSON 字符串,您可以在 javascript 中使用 JSON.parse() 进行解析:
header('Content-Type: application/json');
echo $JSON_FOR_JS;
或直接在 JS 脚本中回显(html 页面或 .js 文件中没有脚本标签):
var js_json = JSON.parse();
现在在 javascript 中,您有一个对象 js_json,其中包含您的字符串内容。