Mam następującą tablicę w PHP:
Array
(
[0] => Array
(
[id] => 0
[name] => name1
[short_name] => n1
)
[2] => Array
(
[id] => 2
[name] => name2
[short_name] => n2
)
)
Chcę zakodować JSON jako tablicę JSON, tworząc ciąg podobny do następującego:
[
{
"id":0,
"name":"name1",
"short_name":"n1"
},
{
"id":2,
"name":"name2",
"short_name":"n2"
}
]
Ale kiedy wywołuję json_encode
tę tablicę, otrzymuję następujące informacje:
{
"0":{
"id":0,
"name":"name1",
"short_name":"n1"
},
"2":{
"id":2,
"name":"name2",
"short_name":"n2"
}
}
który jest obiektem zamiast tablicą.
Jak mogę json_encode
zamiast tego zakodować moją tablicę jako tablicę?
0,2
są ważne? Jestem w tej samej sytuacji, w której nie mogę ponownie zindeksować tablicy.Array
wJSON
są tylko tablicami indeksowanymi , więc struktura, którą próbujesz uzyskać, nie jest poprawna w języku Json / Javascript.Tablica asocjacyjna PHP to obiekty w formacie JSON, więc jeśli nie potrzebujesz indeksu, nie możesz wykonywać takich konwersji.
Jeśli chcesz uzyskać taką strukturę, możesz:
Zwróci coś takiego:
źródło
true zamienia wszystkie właściwości na tablice (sekwencyjne lub nie)
źródło
json_encode
$serialized = json_encode($nonContiguousArray);
$unserialize = json_decode($serialized, true);
końcu poleciłbyś coś takiego,finallySerializedInArrayFormat = json_encode($unserialize);
jeśli to jest to, co zamierzasz, masz rację, ale wydawało się, że jest to trochę zdyszane rozwiązanie.Spróbuj tego,
źródło