2017-02-21 58 views
0

我想從json文件中獲取數據,解析數據並將其添加到數據庫中。我正在使用數據庫,甲骨文。 我收到錯誤:從php中的JSON文件中獲取數據

enter image description here

這是我的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'];} 

回答

2
$obj = json_decode($json,true); 
$data = $obj->data->gps; 

在陣列的形式返回數據,不會反對。從json解碼中刪除第二個參數,一切都應該工作。

使其

$obj = json_decode($json); 
$data = $obj->data->gps; 
+0

謝謝。有效 –