将字符串数据转换为json格式[重复]
Posted
技术标签:
【中文标题】将字符串数据转换为json格式[重复]【英文标题】:turn string data into json format [duplicate] 【发布时间】:2014-02-18 00:18:11 【问题描述】: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格式呢?
【问题讨论】:
我不明白问题本身。 @Tigran 假设代码块是字符串,将它们转换为对象 好吧,你不能转换成一个对象。您可以使用参数创建对象,其中一些可以来自您的字符串。如我所见,您需要 4 个对象,每个对象都有(id、名称和图标链接),对吧? 看看这里 - ***.com/questions/4935632/… 或将 JSON 返回到您的 php,您必须更改内容类型:请参阅:***.com/questions/267546/…,但您必须在 中插入此字符串,例如:@987654325 @ 【参考方案1】:如果这是字符串,那么我建议将其包装在 ...
中并使用 `JSON.parse。即:
var json = JSON.parse('' + string + '');
当然,您需要将 JSON lib helper 添加到您的页面https://github.com/douglascrockford/JSON-js
【讨论】:
不能用php做吗?我不想包含额外的东西。 +1 for add... 但我认为@user3189052 在 JS 字符串解析之前还有其他问题。 使用:json_encode()
到 VALID json 字符串。
是的,你可以使用$string = ''.$string.'';
,然后将字符串发送到客户端。
不仅...他必须在属性名称(技能、报价、注释、项目)中添加双引号。【参考方案2】:
你可以使用JSON.parse(string)
这会从你的字符串中返回一个JSON
【讨论】:
在发布此答案之前您是否尝试过这样做?【参考方案3】:我认为你的问题是 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,其中包含您的字符串内容。
【讨论】:
以上是关于将字符串数据转换为json格式[重复]的主要内容,如果未能解决你的问题,请参考以下文章
将JSON格式的字符串转换为Java中的JSON对象[重复]
如何将 json 转换为 pyspark 数据帧(更快的实现)[重复]
无法将 groupby 数据集转换为 pandas 中的 json [重复]