我正在将数据转换为这样的数据
$data=json_decode(str_replace("\\","",$_GET['data']));
通过这种方式,它会给我空白数据。
如果我像这样传递它将会有效
$data=json_decode($_GET['data']);
但是每当我执行它时,这个东西的问题在我的字符串中越来越多。
我在$ _GET ['data']中传递json:
[
{
"id":"1",
"about":"about_details",
"biodata":"Always \"happy",
"sharedetails":"\\\\New happening\"",
"fname":"username"
}
]
我不想在我的字符串中删除双引号"
,我也想删除双斜杠\\
。请给我一个更好的解决方案
答案 0 :(得分:0)
使用这样的四个斜杠
$data=json_decode(str_replace("\\\\","",$_GET['data']));
这里发生的事情是你正在逃避你的斜线。基本上,\\
表示一个斜杠,而\\\\
表示两个斜杠。带有三个斜杠的str_replace将导致解析错误,因为您正在转义引号。
工作示例:http://www.tehplayground.com/#1UjQOXT2W
由于您只指定了一个斜杠(\\
),因此您将在字符串中替换每个单斜杠。这导致了
{ “ID” 为 “1”, “大约”: “about_details”, “生物数据”:“总是 “happy”,“sharedetails”:“新发生”“,”fname“:”用户名“}
请注意新发生后的两个引号。这不是一个无法解码的有效json字符串