2013-03-25 108 views
0

晚上大家!從PHP中的關聯數組中獲取JSON數據類型

所以,我這裏有一個JSON字符串...

{"username":"87db3983285d395ca0af9f","password":"f4f0bb1533ef5034ce6b0a8a7c49a43b","email":"[email protected]","hnum":3,"splicenum":22,"reg_ip":"71.126.122.217","reg_date":1364175245,"cur_ip":"71.126.122.217","ip_array":["71.126.122.217"],"logins":[],"about":""} 

我使用json_decode此字符串解碼成PHP中關聯數組()。

我在做的是試圖讓1單個函數查詢已轉換爲PHP中的關聯數組的JSON對象。對於這個功能,我現在正在編輯/更新字段。

實施例:

json_edit(array(
    "set"=>array(
     "email"=>"[email protected]" 
    ) 
)); 

字符串或布爾值的鍵「設置」是指設定值。 另一個關鍵是「推」附加到數組,或「刪除」刪除一個字符串或數組。

我想知道的是,我怎樣才能在PHP中獲取當前數組部分的數據類型?

意思是,我怎麼能讓PHP說,「好的,字段'用戶名'是一個字符串,'ip_array'是一個數組」?

我不希望能夠將字符串值設置爲SUPPOSED僅爲布爾值或數組。

有沒有辦法在PHP中獲取JSON數據類型?

非常感謝。

+0

您不知道提前發佈的JSON格式嗎? – eliot 2013-03-25 03:36:09

+0

我這樣做,但只是爲了安全起見,這會很好。 – 2013-03-25 03:51:10

+0

順便說一句,我可能也想讓我的網站的用戶在他們的目錄中擁有或擁有的文件上使用它,並且對於那些可能無法理解JSON 100%的用戶來說,這樣做會很好,因爲如果他們嘗試設置如果某個特定類型的值不正確,那麼我可以給他們一個錯誤信息,說明什麼是錯的。 – 2013-03-25 03:54:32

回答

1

我會用這樣的東西;

<?php 
function json_edit($json, $changes = array()){ 

    $decoded = json_decode($json); 

    foreach($changes as $action => $data){ 
     swith($action){ 
      case 'SET': 

       foreach($data as $key => $value){ 
        $decoded[$key] = $value; 
       } 

      break; 

      case 'DELETE' : 

      break; 
      default; 

     } 
    } 

    return json_encode($decoded); 
} 
?> 
+0

這很好,但爲什麼我更喜歡我的方法,這是因爲我覺得閱讀和寫作更容易。 此外,我不明白這是如何區分數據類型。 (如果是這樣的話) – 2013-03-25 03:55:46