微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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没有.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐