我正在尝试将 json 存储到数据库中并将其加载回来
我试图存储
{name: "John", age: 31, city: "New York"}
它存储正确。我检查了数据库,它显示正确。
{姓名:“约翰”,年龄:31,城市:“纽约”}
我一直在看风景
"{name: \"John\", age: 31, city: \"New York\"}"
这是我的代码。
public function store()
{
$paste = new Paste;
$paste->uuid = Str::uuid()->toString();
$paste->data = trim(Request::get('data',''));
$paste->save();
return Redirect::to('/paste/'.$paste->uuid)->with('success', 'Created');
}
public function show($uuid)
{
$paste = Paste::where('uuid',$uuid)->first();
return response()->json($paste->data);
}
对我有什么提示吗?
可在此处重现
https://www.bunlongheng.com/paste
试试#2
如果我这样做
public function show($uuid)
{
$paste = Paste::where('uuid',$uuid)->first();
return View::make('layouts.fe.pastes.show', get_defined_vars());
}
在我看来,我只有这 1 行
{!!$paste->data!!}
我得到的数据与我现在提交的数据相同。
{name: "John", age: 31, city: "New York"}
但是浏览器将其检测为文本,而不是响应 JSON,这违背了我想要做的事情的目的。
试试#3
public function show($uuid)
{
$paste = Paste::where('uuid',$uuid)->first();
return response()->json(stripslashes($paste->data));
}
结果
"{name: \"John\", age: 31, city: \"New York\"}"
试试#4
public function show($uuid)
{
$paste = Paste::where('uuid',$uuid)->first();
return View::make('layouts.fe.pastes.show', get_defined_vars());
}
看法
{{ json_encode($paste->data, JSON_UNESCAPED_SLASHES) }}
结果
"{name: \"John\", age: 31, city: \"New York\"}"
尝试#5
我认为问题在于存储......而不是加载和渲染。
我试过
return response()->json($paste);
我的 JSON 解析器检测到它......
{
"id": 11,
"status": 0,
"uuid": "0c40f97d-7d98-42c6-864e-71d3ed81eed3",
"name": "n6ou",
"password": "",
"expiration": "",
"type": "json",
"data": "{name: \"John\", age: 31, city: \"New York\"}",
"created_at": "2021-04-22T22:53:11.000000Z",
"updated_at": "2021-04-22T22:53:11.000000Z"
}
这是我以前储存的
$paste->data = trim(Request::get('data',''));
$paste->save();
尝试#6
对于那些怀疑我的数据/内容的人
我尝试在 Pastebin 中粘贴同一行
已清理完毕,您可以在下面看到。