laravel - 如何将所有json文件数据插入数据库?
问题描述
我有 JSON 文件,里面有数据。我想通过数据库播种器导入数据库中的所有数据。我收到一个错误Trying to get property name of non-object
。我有多个数据如何插入数据库?
public function run()
{
$json = File::get("public/kmz/WASASubdivisions.geojson");
$data = json_decode($json);
// dd($data);
foreach ($data as $obj){
Regions::create(array(
'name' => $obj[0]->Name,
'description' => $obj[0]->description,
'altitudeMode' => $obj[0]->altitudeMode,
'Town' => $obj[0]->Town,
'AC' => $obj[0]->AC,
'No_of_TW' => $obj[0]->No_of_TW,
'No' => $obj[0]->No,
'DC'=> $obj[0]->DC,
'HH_2017' => $obj[0]->HH_2017,
'FID' => $obj[0]->FID,
'Area_ha' => $obj[0]->Area_ha,
'Field_1' => $obj[0]->Field_1,
'Pop_Dens' => $obj[0]->Pop_Dens,
'Id' => $obj[0]->Id,
'Pop_2017' => $obj[0]->Pop_2017,
'Area_Sq'=> $obj[0]->Area_Sq,
));
}
}
示例 Json 格式
31 => {#837
+"type": "Feature"
+"properties": {#838
+"Name": "Gujjar Pura"
+"description": null
+"altitudeMode": "clampToGround"
+"Town": "Shalimar Town"
+"AC": "31"
+"No_of_TW": "11"
+"No": "13"
+"DC": "38"
+"HH_2017": "30478"
+"FID": "31"
+"Area_ha": "648.327"
+"Field_1": "Gujjar Pura"
+"Pop_Dens": "54063.141167"
+"Id": "0"
+"Pop_2017": "196619"
+"Area_Sq": "3.63684"
}
+"geometry": {#839
+"type": "MultiPolygon"
+"coordinates": array:1 [
0 => array:1 [
0 => array:169 [ …169]
]
]
}
}
解决方案
属性在properties
键下,但您是从对象的根目录引用它们。例如$obj[0]->Name
应该是$obj[0]->properties->Name
等。
推荐阅读
- sql - 我收到“未为参数 1 指定值”和 2 错误,您能告诉我这里哪里出错了吗?
- python - 如果我输入错误的凭据一次,它不会再次验证凭据,我认为是因为它不再检查 acc_number 和 acc_pass 之后,
- ios - 如何使用 watchos6 实时读取/写入氧饱和度
- powershell - 在 Powershell 中,获取连接路径以使用 $null 和空字符串
- sql - 是否存在可用作自定义自动收报机的应用程序/Windows 小部件?
- c++ - Cout 不生成任何东西(多项式插值)
- spring-boot - JBoss 忽略在 MANIFEST.MF of war 应用程序中声明的 Main-Class 和 Start-Class 属性
- html - 想要将照片中的文字更多地移动到中心
- r - 在条形图的 X 轴中添加低于月份的年份
- java - 声音一遍又一遍地开始