将PHP关联数组转换为JSON关联数组
发布时间:2020-12-13 22:18:29 所属栏目:PHP教程 来源:网络整理
导读:我正在使用json_encode将 PHP中的查找表转换为 JavaScript: AbilitiesLookup Object([abilities:private] = Array ( [1] = Ability_MeleeAttack Object ( [abilityid:protected] = [range:protected] = 1 [name:protected] = MeleeAttack [ability_identifi
我正在使用json_encode将
PHP中的查找表转换为
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输出不是数组的原因). 解决方法
JavaScript对象属性名称可以是任何格式的字符串.它们甚至可以只是数字(就像你的情况一样)并且使用数字索引/键访问它们没有问题:
var obj = { "1": "foo","2": "bar" }; obj["1"]; // returns "foo" obj[1]; // returns "foo" (1 will implicitly get cast to the string "1") (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |