I'm trying to store json into a db and load it back
I tried to store
{name: "John", age: 31, city: "New York"}
It stored correctly. I checked the db, it showed correctly.
{name: "John", age: 31, city: "New York"}
I kept getting on the view
"{name: \"John\", age: 31, city: \"New York\"}"
This is my code.
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);
}
Any hints for me ?
Reproducible here
https://www.bunlongheng.com/paste
Try # 2
If I did this
public function show($uuid)
{
$paste = Paste::where('uuid',$uuid)->first();
return View::make('layouts.fe.pastes.show', get_defined_vars());
}
and in my view, I only have this 1 line
{!!$paste->data!!}
I get the same data as what I submitted now.
{name: "John", age: 31, city: "New York"}
BUT the browser detected it as text, not a response JSON which defeated the purpose of what I am trying to do.
Try # 3
public function show($uuid)
{
$paste = Paste::where('uuid',$uuid)->first();
return response()->json(stripslashes($paste->data));
}
result
"{name: \"John\", age: 31, city: \"New York\"}"
Try # 4
public function show($uuid)
{
$paste = Paste::where('uuid',$uuid)->first();
return View::make('layouts.fe.pastes.show', get_defined_vars());
}
view
{{ json_encode($paste->data, JSON_UNESCAPED_SLASHES) }}
result
"{name: \"John\", age: 31, city: \"New York\"}"
Try #5
I think the issue is lying on the storing ... not the loading and rendering.
I tried
return response()->json($paste);
My JSON parser detected it ...
{
"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"
}
This is what I used to store
$paste->data = trim(Request::get('data',''));
$paste->save();
Try #6
For those of you that doubt my data/content
I've tried pasting the same line in Pastebin
It's cleaned, you can see below.