JSON MySQL 到 json 响应中的字符串
JSON string in MySQL to json response
我有一个 JSON 格式的字符串存储在 mysql 数据库的列 (meta_data) 中,存储在 table 中,例如它看起来像这样:
{"Format":"JPEG","Geometry":"3216x2136","size":{"width":3216,"height":2136}}
现在,如果我使用以下内容:
$meta_data = DB::query->get();
return $meta_data;
我得到:
[
{
"meta_data": "{\"Format\":\"JPEG\",\"Geometry\":\"3216x2136\",\"size\":{\"width\":3216,\"height\":2136}
}
]
如果我使用:
我也会得到相同的结果
$meta_data = json_decode(DB::query->get());
return $meta_data;
同理,使用response()->json($meta_data); returns 它作为一个字符串。
在我看来,它需要进行下一步,但我无法获得任何接近我所追求的东西,理想情况下是:
[
{
"meta_data":
{
"Format":"JPEG",
"Geometry":"3216x2136",
"size":
{
"width":3216,
"height":2136
}
}
}
]
DB::query->get()
将 return 一个 stdClass 对象数组(假设 query
只是 shorthand 您的查询条件)。您将需要遍历数组并将每个条目的 meta_data
字段手动转换为 json 对象。
$records = DB::query->get();
foreach ($records as $record) {
$record->meta_data = json_decode($record->meta_data);
}
return $records;
另一种选择是为 table 创建模型,然后将 meta_data
字段添加到 $casts
属性 以自动将其转换为 json.
型号:
class Attachment extends Model
{
protected $casts = [
'meta_data' => 'json',
];
}
控制器:
// assume "query" is shorthand for your query conditions
$records = Attachment::query->get();
return $records;
我有一个 JSON 格式的字符串存储在 mysql 数据库的列 (meta_data) 中,存储在 table 中,例如它看起来像这样:
{"Format":"JPEG","Geometry":"3216x2136","size":{"width":3216,"height":2136}}
现在,如果我使用以下内容:
$meta_data = DB::query->get();
return $meta_data;
我得到:
[
{
"meta_data": "{\"Format\":\"JPEG\",\"Geometry\":\"3216x2136\",\"size\":{\"width\":3216,\"height\":2136}
}
]
如果我使用:
我也会得到相同的结果 $meta_data = json_decode(DB::query->get());
return $meta_data;
同理,使用response()->json($meta_data); returns 它作为一个字符串。
在我看来,它需要进行下一步,但我无法获得任何接近我所追求的东西,理想情况下是:
[
{
"meta_data":
{
"Format":"JPEG",
"Geometry":"3216x2136",
"size":
{
"width":3216,
"height":2136
}
}
}
]
DB::query->get()
将 return 一个 stdClass 对象数组(假设 query
只是 shorthand 您的查询条件)。您将需要遍历数组并将每个条目的 meta_data
字段手动转换为 json 对象。
$records = DB::query->get();
foreach ($records as $record) {
$record->meta_data = json_decode($record->meta_data);
}
return $records;
另一种选择是为 table 创建模型,然后将 meta_data
字段添加到 $casts
属性 以自动将其转换为 json.
型号:
class Attachment extends Model
{
protected $casts = [
'meta_data' => 'json',
];
}
控制器:
// assume "query" is shorthand for your query conditions
$records = Attachment::query->get();
return $records;