[英]Why doesn't json_encode($arr) not return a true string?
而不是这个"{\\"name\\":\\"Shares Magazine\\"}"
我想要这个{"name":"Shares Magazine"}
。
为了实现这一点,我正在做这个json_encode(["name" => $user->reference_source], JSON_UNESCAPED_SLASHES);
无济于事,因为这总是在数据库"{\\"name\\":\\"Shares Magazine\\"}"
。
我假设您在数据库中使用json
类型列
Schema::create('articles', function (Blueprint $table) {
$table->id();
$table->json('json_column');
});
你也在你的模型中铸造
class Article extends Model
{
protected $casts = [
'json_column' => 'json',
];
}
那么你不需要在保存之前进行转换。 否则,您将以双重演员结束。 Laravel 为您做到了这一点。
Article::create([
'json_column' => ['name' => 'Shares Magazine'],
]);
它将保存为{"name": "Shares Magazine"}
。
在编码你的 JSON 后试试这个(这比JSON_UNESCAPED_SLASHES
效果更好):
$json = preg_replace('/\\\"/',"\"", $json);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.