基于JSON查询结果在数据库中新增记录

一个典型的场景,就是通过API抓取了关于一个产品的一大串数据,都是JSON格式,我们要取出其中的部分字段,新增一条记录。

获取JSON数据以后,第一步要将JSON数据解析为对象,有两种模式,一种是Class,一种是数组。

如果走Class的路线,那么最后的代码就是这样子,可以想象,如果要关联的字段很多,这段代码还是非常繁琐的。

$product = Product::firstOrCreate([
    "Sku" => $item->Sku,
    "FriendlyUrl" => $item->FriendlyUrl
]);

如果在json_decode第二个参数传入true,就可以返回一个数组,那么最后的创建命令就会非常简洁:

$item = array_only($item, ['Sku', 'FriendlyUrl']);
$product = Product::firstOrCreate($item);

综合起来看,还是建议将json_decode返回为数组模式。