Анонимные объекты и массивы в json

whirlwind

TDD infected, paranoid
LeoKee согласен, я облажался - не знал, что бывают массивы с анонимными ключами. В будущем буду умнее, спасибо за науку.
 

Farsh

~ on ~ high ~ wave ~
LeoKee
А как он тебе еще вернется ? Помоему ты не знаешь типов данных array и object в javascript

-~{}~ 24.09.09 21:13:

p.s. шо за анонимные ключи? -.-

-~{}~ 24.09.09 21:20:

$array = array('one', 'two');
var_dump(json_encode($array));

$array = array(0 => 'one', 1 => 'two');
var_dump(json_encode($array));

$array = array();
$array[] = 'one';
$array[] = 'two';
var_dump(json_encode($array));

$array = array();
$array['first_key'] = 'one';
$array['second_key'] = 'two';
var_dump(json_encode($array));
результат
string(13) "["one","two"]"
string(13) "["one","two"]"
string(13) "["one","two"]"
string(38) "{"first_key":"one","second_key":"two"}"
как и должно быть .. Или я не понял того, что нужно аффтору ?
 

vovanium

Новичок
а с указанием ключа, то этот массив json_encode возвращает в виде {"s":{"1":"15", .... и тд
Пример конечно гениальный. Неужели так сложно выложить два массива один в php, другой который ты хочешь получить в js. Не нужно давать примеры того что тебе не нужно.

И если ты указываешь ключ в виде строки, то вполне естественно что и в json он сохраняется. Если тебе ключ не нужен, то пиши $a[0] = $primer; $a[1] = $primer; и т.п.
Если ключи числовые и идут подряд, то они преобразовываются в js-массив, иначе в js-объект.
 

john.brown

просто кулибин
LeoKee
в аргументе ассоц массив, а он обрамляет его в объектные скобки { } js
А ты знаеш какой то другой способ представить аналог ассоциативного массива в js?
 

dimagolov

Новичок
john.brown, автор видимо хочет, чтобы все ассоц массивы json преобразовывал в нумерованные. что мешает автору изначально так строить массивы мне лично не ясно...
 

whirlwind

TDD infected, paranoid
Не, еще возможен такой неявный вариант, когда конвертация данных проходит без учета (не)строгости типизации. Например, из базы выдернули и сделали массив. Однако факта нежелания тс-а понять что ему тут объясняют, это не отменяет.
 

LeoKee

Новичок
Cобственно об этом и идёт речь. Если бы я создавал эти массивы сам, то не возникло и вопроса. Но когда они уже есть, то в данном случае как быть?
 

whirlwind

TDD infected, paranoid
Если есть возможность, исправить на этапе конвертации - это желательно. Если нет, то тут уже ответили.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
коллективное помешательство
вы ему еще код отдебажте всем клубом :)
он же просто бревно
 

john.brown

просто кулибин
LeoKee
А что мешает на стороне js строить обработку не массива, а объекта?
 
Сверху