我正在尝试从Wordpress自定义字段中创建有效的JSON。我在这里遇到问题:
{"eu_price":"400", // this one is ok
"other_prices":["{\"GBP\":\"330\",\"USD\":\"525\"}"] // this is not
}
如何摆脱这些斜线?
我使用这个Wordpress函数从MySql数据库字段中获取数据:
$my_product[other_prices] = get_post_meta( $product_id, '_regular_currency_prices', false );
然后我正在使用:
echo json_encode($my_product, JSON_UNESCAPED_SLASHES);
以返回编码结果。
在数据库中,字段内容如下:
{"GBP":"330","USD":"525"}
完整的json响应是:
{"user_country":"US","title":"Dress 1960","permalink":"http://site.dev/my_slug/","eu_price":"350","other_prices":["{\"GBP\":\"290\",\"USD\":\"460\"}"],"main_image":"http://doublej.dev/wp-content/uploads/2015/01/1100000003274_0-300x300.jpg"}
答案 0 :(得分:2)
设置$my_product['other_prices']
时,您将其设置为字符串。如果数据库包含JSON,您需要对其进行解码,以便在重新编码您的响应时,这一切都有意义。
$jsonEncodedData = get_post_meta( $product_id, '_regular_currency_prices', false );
$my_product['other_prices'] = json_decode($jsonEncodedData)
答案 1 :(得分:0)
不要手动构建json字符串,请使用json_encode
:
echo json_encode([
'eu_price'=>'400',
'other_prices'=>[
'GBP'=>'330',
'USD'=>'525'
]
]);