我正在从PHP数组创建一个JSON字符串.我用它编码了json_encode()
.
$data = array(
'title' => 'Example string\'s with "special" characters'
);
$data = json_encode( $data );
Run Code Online (Sandbox Code Playgroud)
$data
使用本地化wp_localize_script()
并可通过全局data
变量访问.
在JS文件中,我可以通过以下方式访问信息:
var data = data.replace( /"/g, '"' ),
jsonData = jQuery.parseJSON( data );
console.log( jsonData );
Run Code Online (Sandbox Code Playgroud)
这导致输出:
{ "title":"Example string's with "special" characters" }
Run Code Online (Sandbox Code Playgroud)
将结果输入http://jsonlint.com/会返回错误.删除"特殊"周围的双引号可验证字符串.
从PHP创建JSON字符串并正确转义它以在JS文件中使用的最佳方法是什么?
我正在创建一个插件,用户data-
在HTML中添加属性中的自定义设置.设置采用JSON格式.我在Javascript中使用这些设置.
它有preview
,base
和paths
属性.preview
并base
具有字符串值,但是paths
是一个path
对象数组.
当我直接在HTML中添加JSON设置时,它工作正常:
<div data-side="front" data-params='{"preview": "assets/img/products/tshirt/front-preview.png", "base": "assets/img/products/tshirt/front-base.png", "paths": "[{\"name\": \"base\", \"path\": \"M 324.00,33.00 C 324.00,33.00\", \"x\": 92, \"y\": 16, \"height\": 370}, {\"name\": \"collar\", \"path\": \"M 358.00,46.10 C 358.00,46.10\", \"x\": 170, \"y\": 17, \"height\": 21}, {\"name\": \"leftSleeve\", \"path\": \"M 633.17,170.00 C 633.17,170.00\", \"x\": 288, \"y\": 66, \"height\": 131}, {\"name\": \"leftCuff\", \"path\": \"M 595.00,438.00 C 615.47,438.23\", \"x\": 293, \"y\": 172, \"height\": 33}, {\"name\": \"rightSleeve\", …
Run Code Online (Sandbox Code Playgroud)