Я конвертирую справочную таблицу в PHP, которая выглядит следующим образом, в JavaScript, используя json_encode:
AbilitiesLookup Object
(
[abilities:private] => Array
(
[1] => Ability_MeleeAttack Object
(
[abilityid:protected] =>
[range:protected] => 1
[name:protected] => MeleeAttack
[ability_identifier:protected] => MeleeAttack
[aoe_row:protected] => 1
[aoe_col:protected] => 1
[aoe_shape:protected] =>
[cooldown:protected] => 0
[focusCost:protected] => 0
[possibleFactions:protected] => 2
[abilityDesc:protected] => Basic Attack
)
.....snipped...
А в JSON это:
{"1":{"name":"MeleeAttack","fof":"2","range":"1","aoe":[null,"1","1"],"fp":"0","image":"dummy.jpg"},....
Проблема в том,Я получаю объект JS, а не массив, и идентификатор является числом.Я вижу два пути решения этой проблемы - либо найти способ доступа к JSON с помощью числа (которое я не знаю, как), либо сделать так, чтобы json_encode (или некоторые другие пользовательские функции кодирования) могли дать ассоциативный массив JavaScript.
(Да, мне довольно не хватает моего отдела JavaScript).
Примечание : вывод JSON не соответствует массиву - это потому, что я выполняю кодировку json вручнуюдля каждого элемента в нижнем индексе, перед тем, как поместить его в массив (с индексом в качестве ключа), а затем с помощью json_encode.Чтобы было ясно, число не является последовательным, потому что это ассоциативный массив (именно поэтому вывод JSON не является массивом).