我正在尝试从json文件中获取数据,解析它并将数据从中添加到数据库中。我用作数据库,oracle。 我收到了错误:
这是我的JSON文件
{
"data": {
"gps": [
{ "location": "45.778123,24.151165"
},
{ "location": "45.7875116,24.1549801"
}
]
}
这是我的php文件
<?php
$file = 'JSONdata.json';
$json = file_get_contents($file,0,null,null);
$obj = json_decode($json,true);
$data = $obj->data->gps;
include 'connection.php';
function insert_data($connname, $conn)
{
foreach ($data as $post) {
$stmt = oci_parse($conn, "insert into GPSLOGS
values('".$post->location."')");
oci_execute($stmt, OCI_DEFAULT);
echo "$connname inserted row without committing<br>\n";
}
}
insert_data('c1', $conn);
?>
你知道我做错了什么吗?为什么它一直得到这些错误? 我还尝试使用另一种格式的JSON文件并以不同方式解析它,但它仍然会出现相同的错误。
.json
[{ "gps": "45.778123,24.151165"},{"gps": "45.7875116,24.1549801"}]
.php
$file = 'JSONdata.json';
$json = file_get_contents($file,0,null,null);
$obj = json_decode($json,true);
foreach($obj as $item)
{ echo $item['gps'];}
答案 0 :(得分:2)
$obj = json_decode($json,true);
$data = $obj->data->gps;
以数组的形式返回数据,而不是对象。从json decode中删除第二个参数,一切都应该有效。
制作
$obj = json_decode($json);
$data = $obj->data->gps;