脚本宝典收集整理的这篇文章主要介绍了php – Javascript解码包含编码字符串的JSON字符串,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
$foo = new stdClass(); $foo->test='hello world'; $bar = new stdClass(); $bar->foo = json_encode($foo); $encoded_string = json_encode($bar);
$encoded_string包含:
{"foo":"{\"test\":\"hello world\"}"}
我想从javascript解析这个字符串(例如使用jquery的$.parseJSON):
VAR data = $.parseJSON('{"foo":"{\"test\":\"hello world\"}"}'); console.LOG(data);
我希望记录以下内容:
Object {foo: '{"test":"hello world"}'}
但是在运行它时会出现意外的令牌错误(使用铬)
如何在Javascript中解析这个json字符串? Here’s a fiddle,如果有人想尝试.
json_encode输出一个可用的JavaScript对象:
<?PHP $foo = new stdClass(); $foo->test='hello world'; $bar = new stdClass(); $bar->foo = json_encode($foo); $encoded_string = json_encode($bar); ?> var a = <?PHP $encoded_string ?>; console.log(a.foo); // PRoduces '{"test":"hello world"}'
如果你想从字符串值中不必要地解析JSON输出,你只需要对$encoded_string进行双重编码:
<?PHP $foo = new stdClass(); $foo->test='hello world'; $bar = new stdClass(); $bar->foo = json_encode($foo); $encoded_string = json_encode(json_encode($bar)); ?> var aStr = <?PHP $encoded_string ?>; var a = JSON.parse(aStr); console.log(a.foo); //same as before
当然,您应该避免使用服务器端语言来生成JavaScript代码,而是将数据设置为data-*
attribute或可以使用AJAX请求的JSON源.
当从服务器(或从属性)请求数据时,它将作为正确转义的JavaScript字符串,这是解析对象所需的JSON.parse.
以上是脚本宝典为你收集整理的php – Javascript解码包含编码字符串的JSON字符串全部内容,希望文章能够帮你解决php – Javascript解码包含编码字符串的JSON字符串所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。