将PHP关联数组转换为JSON关联数组

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了将PHP关联数组转换为JSON关联数组脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用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")

脚本宝典总结

以上是脚本宝典为你收集整理的将PHP关联数组转换为JSON关联数组全部内容,希望文章能够帮你解决将PHP关联数组转换为JSON关联数组所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。