我正在将一个 PHP 中的查找表通过 json_encode 转换为 JavaScript,这个表格看起来像这样:
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 输出不是一个数组)。