php json_encode()在斜杠

时间:2017-06-27 07:20:51

标签: php arrays json laravel laravel-5

我将数据以json的形式存储到数据库中。用户可以输入引号,所以我在引号前手动添加斜杠。所以我的数据就像这样

array:8 [▼
  "buttonText" => "Large Button"
  "campName" => "Large\'s Button Test"
  "buttonSize" => "1"
]

但是当我将它转换为json时,json_encode()函数会在我的斜杠之前自动添加一个斜杠

"{"buttonText":"Large Button","campName":"Large\\'s Button Test","buttonSize":"1"}"

为什么要添加额外的斜杠,是否有任何选项可以阻止

2 个答案:

答案 0 :(得分:1)

你为什么这样做?完全是添加斜线的坏事。

您可以使用以下数组生成JSON:

$arr=array();

$arr['buttonText']="Large Button";
$arr['campName']="Large's Button Test";
$arr['buttonSize']=1;

echo json_encode($arr);

只需使用json_encode()存储值,json_decode()即可获取值。

这是不同的方法:

$arr=array(
    'buttonText'=>"Large Button",
    'campName'=>"Large's Button Test",
    'buttonSize'=>1,
);

echo json_encode($arr);

<强> JSON ENCODE - Manual

<强> JSON DECODE - Manual

json_encode()自动添加斜线并json_decode()将其删除。你不需要考虑这个问题。只是不要担心并且快乐。

答案 1 :(得分:1)

添加了额外的斜杠,因为这是json_encode将执行的操作。 See this documentation

如果您要将数据编码存储在数据库中,则不需要手动添加斜线。 json_encode将负责所有逃脱。

相关问题