2013-03-25 114 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