MySQL Laravel 中如何存储 JSON 格式的数据 |
您所在的位置:网站首页 › laravel怎么读 › MySQL Laravel 中如何存储 JSON 格式的数据 |
MySQL Laravel 中如何存储 JSON 格式的数据
在现代的开发中,JSON 是一种流行的数据格式,特别在前后端交互中,但是对于如何在 MySQL 和 Laravel 中存储 JSON 数据却是一个比较棘手的问题。本篇文章将帮助您理解并学会如何在 MySQL 和 Laravel 中存储 JSON 格式的数据。 阅读更多:MySQL 教程 JSON 介绍和应用JSON 是一种运用广泛的数据格式,也是现代开发中最流行的交换数据格式之一。在 RESTful API 和前后端交互中,JSON 已成为标准的数据格式。由于其轻量化的特点,JSON 数据具有易读、易解析、易传输等特点,且与各种编程语言兼容性都较好。 使用 JSON 比使用 XML 或其他数据格式更有优势,因为 JSON 数据比 XML 更容易解析,且格式更简洁。使用 JSON 数据格式还可以避免 XHR 对 JSONRequest 的跨域限制。 在 Laravel 开发中,我们可以使用很多内置函数和类库来处理 JSON 数据,如 json_encode 和 json_decode 函数。 $data = ['name' => 'Laravel', 'version' => '8.x']; $json = json_encode($data);以上代码将在变量 $json 中生成一个 JSON 格式的数据,数据内容为 {"name":"Laravel","version":"8.x"}。 在 MySQL 中存储 JSON 数据MySQL 同样支持 JSON 数据的存储,MySQL 5.7 版本以后引入 JSON 数据类型,MySQL 8.0 版本又增加了许多 JSON 数据函数。 在 MySQL 数据库中,可以使用 JSON 数据类型来定义字段,并对 JSON 数据类型字段进行操作。在定义字段时,只需要在字段后面加上 JSON 即可。 CREATE TABLE example ( id INT AUTO_INCREMENT PRIMARY KEY, data JSON NOT NULL );以上代码演示了如何创建一个名为 example 的数据表,数据表包含一个 id 字段和一个 data 字段,data 字段的数据类型为 JSON。 在将数据保存到数据库中时,我们可以使用 JSON_EXTRACT() 函数从 JSON 中提取数据并存储在相应的列中。使用 JSON_EXTRACT() 函数,我们可以简单地插入或更新数据,以及对数据进行查询。 INSERT INTO example (data) VALUES ('{"name": "Laravel", "version": "8.x"}');以上代码演示了如何将 JSON 数据插入到 MySQL 中定义为 JSON 类型的字段中。 如果需要在前端搜索 MYSQL 中的 JSON 数据,则可以使用 JSON_EXTRACT() 函数进行查询。 SELECT * FROM example WHERE JSON_EXTRACT(data, '$.name') = 'Laravel';以上代码可以查询 example 表中 name 字段为 Laravel 的所有记录。 在 Laravel 中存储 JSON 数据在 Laravel 中存储 JSON 数据比在 MySQL 中简单。使用 Laravel 提供的 Fluent Query Builder 和 Eloquent ORM 可以轻松完成这项任务。 在 Laravel 的 Eloquent ORM 中,可以使用 $casts 属性,在模型中定义 JSON 字段类型。 class Example extends Model { protected $casts = ['data' => 'json']; }以上代码演示如何在 Laravel 中定义 JSON 数据类型。 使用 Eloquent ORM 操作数据时,可以将 JSON 数据转换为数组并进行操作。在保存数据时,Laravel 会将数组转换为 JSON 并存储在数据库中。 $example = new Example; $example->data = ['name' => 'Laravel', 'version' => '8.x']; $example->save();以上代码演示了如何在模型中创建新的数据条目。 在使用 Eloquent ORM 进行查询时,可以使用 where() 方法指定 JSON 数据中包含的特定字段。 $example = Example::where('data->name', 'Laravel')->get();以上代码演示了如何使用 Eloquent ORM 进行搜索包含指定字段的 JSON 数据。 如果需要使用 Fluent Query Builder 进行数据操作,也可以使用 whereJsonContains() 方法。 $example = DB::table('example') ->whereJsonContains('data->name', 'Laravel') ->get();以上代码演示了如何使用 Fluent Query Builder 进行搜索包含指定字段的 JSON 数据。 同时,Laravel 还提供了 toJson() 和 toArray() 方法,可以将模型的属性从数组转换为 JSON 格式,或将 JSON 格式转换为数组。即便在模型中未设置 $casts 属性,Laravel 也可以自动将 JSON 数据转换为数组。 $example = Example::find(1); $data = $example->data; $json = $example->toJson(); $array = $example->toArray();以上代码演示了如何从模型属性中提取和转换 JSON 数据。 总结总的来说,Laravel 提供了许多简便的方法来存储和操作 JSON 格式的数据。在 MySQL 中,可以使用 JSON 数据类型来定义字段,使用内置函数进行操作和查询。在 Laravel 中,可以使用 Fluent Query Builder 和 Eloquent ORM,通过$casts 属性定义 JSON 字段类型进行操作。 在开发过程中,如何存储 JSON 数据型为一个非常棘手的问题,本篇文章希望帮助您入门了解 MySQL 和 Laravel 中如何操作 JSON 数据。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |