如何转换以下json格式
[
[{
"product_id": 1,
"name": "Cotton Shirt",
"sku": "abcdef"
}],
[{
"product_id": 2,
"name": "Silk Shirt",
"sku": "csfddef"
}]
]
喜欢低于
[{
"product_id": 1,
"name": "Cotton Shirt",
"sku": "abcdef"
}, {
"product_id": 2,
"name": "Silk Shirt",
"sku": "csfddef"
}]
我只想去掉多余的方括号。的可能性
如果无法预先从初始数组中获取内部数组,请使用json_decode
和json_encode
函数尝试以下方法:
$arr = json_decode('[[{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}]]')[0];
print_r(json_encode($arr)); // "[{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}]"
使用substr()从第一个字符返回到倒数第二个字符:
$input = '[[{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}]]';
$result = substr($input, 1, -1);
// $result: [{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}]
如果JSON已经是一个数组,那么只需获取第一项:
$result = json_encode($input[0]);
// $result: [{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}]
试试这个:
<?php
$json = '[[{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}],[{"product_id":2,"name":"Silk Shirt","sku":"csfddef"}]]';
$arrayData = json_decode($json, true);
$newData = array_map(function($data) {return $data[0];}, $arrayData);
$json = json_encode($newData);
print_r($json);
结果是:
[{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"},{"product_id":2,"name":"Silk Shirt","sku":"csfddef"}]
它有效,请在此处查看:单击