php – json_encode()在多维数组上 – 使用字符串键

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – json_encode()在多维数组上 – 使用字符串键脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 PHP创建一个非常大的多维数组.每个对象都包含Name,ID,ParentID和Children.子元素是一组具有相同格式的更多对象.

关键是我命名每个对象的ID – 这有助于我将每个对象放在正确的父对象之下. (在下面的代码中,我使用101,102等)

但是,我遇到的问题是当我使用json_encode在JSON中返回数组时.每个’Children’数组都被打印为一个对象,而不是一个数组 – 如下面的JSON代码所示.

当我读到另一个SO线程here时,它们“由于包含字符串键而被制作为对象” – 尽管它们是数字,但它们仍然是字符串.

{
"101": {
    "ID": "101","ParentID": "0","Name": "Root One"
    "Children": {
        "102": {
            "ID": "102","ParentID": "101","Name": "Child One"
        },"103": {
            "ID": "103","Name": "Child Two","Children": {
                "104": {
                    "ID": "104","ParentID": "103","Name": "Child Child One"
                }
            }
        },

有谁知道如何克服这个问题?

编辑:JSON应该如下所示(方括号很重要!):

[
{
    "ID": "101","Name": "Root One","Children": [
        {
            "ID": "102","Name": "Child One","Children": [

解决方法

JSON数组没有显式索引,它只是一个有序列表.唯一具有命名键的JSON数据结构是一个对象.文字应该使这一点非常明显:

["foo","bar","baz"]

此数组没有命名索引,也没有任何添加任何规定.

PHP将列表和键值存储混合为一种数组数据类型. JSON没有.

脚本宝典总结

以上是脚本宝典为你收集整理的php – json_encode()在多维数组上 – 使用字符串键全部内容,希望文章能够帮你解决php – json_encode()在多维数组上 – 使用字符串键所遇到的问题。

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

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