Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何利用PHP从JSON字符串中删除属性_Php_Json - Fatal编程技术网

如何利用PHP从JSON字符串中删除属性

如何利用PHP从JSON字符串中删除属性,php,json,Php,Json,我在PHP中有一个JSON结果,如下所示: [{"attributes":{"type":"Manager__c","url":"/services/data/v23.0/sobjects/Manager__c/a03U00000015ay6IAA"},"Id":"a03U00000015ay6IAA","Name":"ManagerID-00003"}, {"attributes":{"type":"Manager__c","url":"/services/data/v23.0/sobjec

我在PHP中有一个JSON结果,如下所示:

[{"attributes":{"type":"Manager__c","url":"/services/data/v23.0/sobjects/Manager__c/a03U00000015ay6IAA"},"Id":"a03U00000015ay6IAA","Name":"ManagerID-00003"},

{"attributes":{"type":"Manager__c","url":"/services/data/v23.0/sobjects/Manager__c/a03U00000015ZfJIAU"},"Id":"a03U00000015ZfJIAU","Name":"ManagerID-00001"},

{"attributes":{"type":"Manager__c","url":"/services/data/v23.0/sobjects/Manager__c/a03U00000015axwIAA"},"Id":"a03U00000015axwIAA","Name":"ManagerID-00002"}]
我希望消除属性(包含类型和URL),以便将JSON结果展平。所以我希望它看起来更像:

[{"Id":"a03U00000015ay6IAA","Name":"ManagerID-00003"},
{"Id":"a03U00000015ay6IAA","Name":"ManagerID-00003"},
{"Id":"a03U00000015ay6IAA","Name":"ManagerID-00003"}]

PHP中消除每个属性实例的最佳方法是什么?

使用PHP的JSON工具,您可以将JSON字符串转换为数组,然后使用简单的foreach语句和REGEX删除数组项

完成后,只需使用PHP函数将其转换回JSON字符串,并按照您的意愿处理:-)

我正在考虑的函数是-json_decode,json_encode

谢谢
Andrew

使用PHP的JSON工具,您可以将JSON字符串转换为数组,然后使用简单的foreach语句和REGEX删除数组项

完成后,只需使用PHP函数将其转换回JSON字符串,并按照您的意愿处理:-)

我正在考虑的函数是-json_decode,json_encode

谢谢 Andrew

使用,并且应该足够简单:

function strip_arguments( $item){
  $new_result = array(
    'Id' => $item['Id'],
    'Name' => $item['Name'],
  )
  return $new_result;
}

$array = json_decode( $input);
$array = array_map( 'strip_arguments', $array);
$input = json_encode( $array);
当然,您可以使用内部
strip_参数
(而不是创建新数组),但这将确保任何“新属性”都不会使其失效

您可以使用
返回数组(…)
而不是声明变量和链操作:
json_编码(数组_映射('strip_arguments',json_decode($input))太多:)

使用,应该足够简单:

function strip_arguments( $item){
  $new_result = array(
    'Id' => $item['Id'],
    'Name' => $item['Name'],
  )
  return $new_result;
}

$array = json_decode( $input);
$array = array_map( 'strip_arguments', $array);
$input = json_encode( $array);
当然,您可以使用内部
strip_参数
(而不是创建新数组),但这将确保任何“新属性”都不会使其失效


您可以使用
返回数组(…)
而不是声明变量和链操作:
json_编码(数组_映射('strip_arguments',json_decode($input))
too:)

我要做的是
json\u decode()
it,循环并构建一个只包含你想要的属性的新数组,然后在完成后
json\u encode()
检查这个答案:我要做的是
json\u decode()
it,循环并构建一个只包含你想要的属性的新数组,完成后,请查看以下答案:喜欢到目前为止的解决方案,但是发生了以下错误无法使用stdClass类型的对象作为数组查看到目前为止的解决方案,但是发生了以下错误无法使用stdClass类型的对象作为数组