0

我在 PHP 中得到 JSON 数据,如下所示:

echo json_encode($jps_item); 
[{"NO":"1","ID_OBJECT":"A045"},{"NO":"2","ID_OBJECT":"A049"}]

我想把它变成这样的JSON:

[{"NO":"NULL","ID_OBJECT":"NULL"},{"NO":"1","ID_OBJECT":"A045"},{"NO":"2","ID_OBJECT":"A049"}]

我的循环需要一个空的 JSON。我该如何转换它?

4

4 回答 4

0

我假设jps_item是你的数组。只需在编码之前在其开头添加一个空字段。

 <?php
$jps_item = [
    ["NO"=> "1","ID_OBJECT" =>"2"],
    ["NO"=> "3","ID_OBJECT" =>"4"]
];

$jps_item[-1] = [
    "NO"=> "NULL",
    "ID_OBJECT" =>"NULL"
];

ksort($jps_item);

echo json_encode($jps_item);

输出是:

{"-1":{"NO":"NULL","ID_OBJECT":"NULL"},"0":{"NO":"1","ID_OBJECT":"2"},"1":{"NO":"3","ID_OBJECT":"4"}}
于 2018-11-15T08:49:25.380 回答
0

为了制定一个通用的解决方案,这通过从主数组的第一个元素 ( using array_keys($jps_item[0])) 中获取键来创建一个空白条目,并使用 创建一个空数组array_fill_keys()

然后它将这个空白与主要数据合并使用array_merge()......

$blank = array_fill_keys(array_keys($jps_item[0]), NULL);
echo json_encode(array_merge([$blank], $jps_item));

这意味着如果您更改主阵列,空白将自行调整。

于 2018-11-15T08:51:45.623 回答
0

此外,您可以尝试array_unshift()函数。检查下面的代码

$data_array2 =  array(
    'NO' => 'NULL',
    'ID_OBJECT' => 'NULL',
  );


array_unshift($jps_item, $data_array2); 
于 2018-11-15T08:52:53.970 回答
0

您需要使用将 JSON 转换为数组json_decode()并将新的空项添加到数组的第一个使用array_unshift(),然后使用将数组转换为 jsonjson_encode()

$json = '[{"NO":"1","ID_OBJECT":"A045"},{"NO":"2","ID_OBJECT":"A049"}]';
$arr = json_decode($json, true);
array_unshift($arr, [
    "NO" => "NULL", "ID_OBJECT" => "NULL"
]);
$json = json_encode($arr);

在演示中检查结果

于 2018-11-15T08:53:09.750 回答