有没有办法将PHP数组(或任何其他类似的PHP对象)编码为JSON,同时具有相同的JSON数组键?
以下是一个例子:
{"categories" : [ {"key": "data1"}, {"key": "data2"}, {"key": "data3" } ] }
请注意"类别" object是一个可以使用for循环简单解析的数组。 但是,在PHP中,它似乎不可能在关联数组中具有相同的键。所以我不能将上面的结构作为json_encode的结果,我必须得到" key1"," key2"," key3",其中阻止我在Javascript中使用for循环简单地解析它。
编辑:修正了JSON语法 EDIT2:所有数据都不同。钥匙是相同的。
答案 0 :(得分:1)
使用php json_encode()函数将PHP数组转换为JSON字符串。
反转:json_decode()
示例:
<?php
$json = '{"categories" : { "key1": {"first":"1. value"}, "key2": "data", "key3": "data" } }';
$array = json_decode($json,true);
echo "<pre>";
print_r($array);
echo "</pre>";
将输出:
Array
(
[categories] => Array
(
[key1] => Array
(
[first] => 1. value
)
[key2] => data
[key3] => data
)
)
答案 1 :(得分:0)
$array = [
'categories' => [
['key' => 'data'],
['key' => 'data'],
['key' => 'data']
]
];
echo json_encode($array);
这与JSON中的数组结构相同。 JSON与PHP有关的唯一密钥规则相同。
(这里使用PHP 5.4+数组语法。)
答案 2 :(得分:0)
应该是直截了当的:
echo json_encode([
'categories' => [
['key' => 'data'],
['key' => 'data'],
['key' => 'data'],
],
]);
此外,您可以通过执行以下操作简单地对结构进行反向工程:
$str = '{"categories" : [ {"key": "data1"}, {"key": "data2"}, {"key": "data3" } ] }';
$arr = json_decode($str);
var_export($arr);