#javascript #php #json
#javascript #php #json
Вопрос:
У меня есть базовый массив, подобный этому:
[
{
"id": 4,
"name": "Ray"
},
{
"id": 5,
"name": "Anthony"
}
]
И мне нужно вернуть серию этих массивов как часть одного сообщения json. Кажется, я не могу понять это правильно в соответствии с: http://jsonlint.com /. Например, у меня есть группы людей. Каждая группа представляет собой массив людей, и каждая группа должна быть отдельным элементом родительского массива. Как это должно быть отформатировано?
Чтобы уточнить:
group1: ray, anthony
group2: john, mike
group3: ed, dan
и так далее…
Комментарии:
1. Как выглядит ваша попытка форматирования?
2. У вас базовый массив на PHP или JavaScript? Вы группируете PHP-объект в массив?
3. PHP или JavaScript? Выберите один.
Ответ №1:
Просто сгруппируйте их по два, из PHP создайте структуру, затем, как обычно, используйте json_encode()
. Пример:
$groups = array(
'group1' => array(
array('id' => 4, 'name' => 'Ray'),
array('id' => 5, 'name' => 'Anthony'),
),
'group2' => array(
array('id' => 6, 'name' => 'john'),
array('id' => 7, 'name' => 'mike'),
),
'group3' => array(
array('id' => 8, 'name' => 'ed'),
array('id' => 9, 'name' => 'dan'),
),
);
echo '<pre>';
print_r(json_encode($groups, JSON_PRETTY_PRINT));
Должно дать что-то вроде:
{
"group1": [
{
"id": 4,
"name": "Ray"
},
{
"id": 5,
"name": "Anthony"
}
],
"group2": [
{
"id": 6,
"name": "john"
},
{
"id": 7,
"name": "mike"
}
],
"group3": [
{
"id": 8,
"name": "ed"
},
{
"id": 9,
"name": "dan"
}
]
}
Ответ №2:
я думаю, это работает:
{
"g1": [
{
"id": 4,
"name": "Ray"
},
{
"id": 5,
"name": "Anthony"
}
],
"g2": [
{
"id": 4,
"name": "Mike"
},
{
"id": 5,
"name": "John"
}
]
}
Ответ №3:
мне нравится этот способ:
var groups = [
"G1" : {
"11" : {
"id" : 11,
"name" : "jhon"
},
"3" : {
"id" : 3,
"name" : "erik"
}
},
"G2" : {
"8" : {
"id" : 8,
"name" : "jean"
},
"4" : {
"id" : 4,
"name" : "jim"
}
}
]
внутри любой группы ключом любого объекта является идентификатор (строковый формат) человека, для легкого доступа к его данным.
пример.
group.G2[8]; // return jean object
Формат PHP:
$g = array(
'G1' => array(
'11' => array('id' => 11, 'name' => 'jhon'),
'3' =>array('id' => 3, 'name' => 'erik')
),
'G2' => array(
'8' => array('id' => 8, 'name' => 'jean'),
'4' => array('id' => 4, 'name' => 'jim')
)
);