我遇到了json字符串的问题。
我在Postman发送这个json字符串,
{
"places": [
{
"longitude": "79.9304633",
"latitude": "6.720229199999999",
"city": "Panadura"
},
{
"longitude": "79.86296829999999",
"latitude": "6.855948499999999",
"city": "Dehiwala"
}
]
}
但在服务器端,当我使用此值获取此值时,
$jsonPlaces = $_POST['jsonplaces'];
并且$ jsonPlaces的值看起来像这样,
{\\\"places\\\":[{\\\"longitude\\\":\\\"79.9304633\\\",\\\"latitude\\\":\\\"6.720229199999999\\\",\\\"city\\\":\\\"Panadura\\\"},{\\\"longitude\\\":\\\"79.86296829999999\\\",\\\"latitude\\\":\\\"6.855948499999999\\\",\\\"city\\\":\\\"Dehiwala\\\"}]}
因此json_encode()函数不适用于上面的字符串,因为json语法已更改。 如何解决这个问题?
由于
答案 0 :(得分:3)
使用stripslashes($_POST['jsonplaces'])
删除其他斜杠。
答案 1 :(得分:0)
可能Postman使用addslashes
方法在DB中输入它之前转义(JSON)字符串,如注释中所述,你应该使用反函数stripslashes
来解除之前的字符串执行json_decode
功能