多维数组上的 json_encode() - 使用字符串键

2023-11-22

我正在使用 PHP 创建一个非常大的多维数组。每个对象包含名称、ID、ParentID 和 Children。 Children 是具有相同格式的更多对象的数组。

命名每个对象的 ID 至关重要 - 这有助于我将每个对象置于正确的父对象下。 (在下面的代码中,我使用 101、102 等)

但是,我遇到的问题是当我使用 JSON 返回数组时json_encode。每个“Children”数组都作为对象而不是数组打印 - 如下面的 JSON 代码所示。

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

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

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

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

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

JSON 数组没有显式索引,它只是一个有序列表。唯一具有 JSON 数据结构命名键是一个对象。从字面上看应该很明显:

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

This array没有命名索引,也没有任何添加索引的规定。

PHP 将列表和键值存储合二为一array数据类型。 JSON 没有。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多维数组上的 json_encode() - 使用字符串键 的相关文章

  • 内连接 3 个表

    我正在使用 PHP 和 PDO 我需要重新收集连接 3 个表的信息 photos albums 相册照片 该表具有以下结构 photos photo id int path varchar nick varchar date timesta
  • 是否可以在 UML 中可视化一堆函数

    我正在改进一个使用类和函数文件 只是包含各种函数的 php 文件 的内容管理系统 例如 我有一堂课叫Admin以及一个功能文件 其功能包括显示管理员概述 创建新管理员 编辑现有管理员 删除管理员 函数文件使用类并执行 mvc 概念的可视化部
  • PHP 异常处理与 C#

    这是一个非常基本的问题 我希望如此 我所做的大部分异常处理都是使用 C 进行的 在 C 中 任何在 try catch 块中出错的代码都会由 catch 代码处理 例如 try int divByZero 45 0 catch Except
  • PHP 读取使用 setcookie() 创建的 cookie

    来自manual https www php net setcookie 直到下一次加载 Cookie 应该可见的页面之前 Cookie 才会变得可见 这意味着创建的 cookiesetcookie将无法访问 COOKIE直到下一页加载 有
  • Symfony2,如何向表单添加隐藏的日期类型字段?

    我正在尝试以下场景 In myclassType public function buildForm FormBuilder builder array options builder gt add day hidden gt add da
  • 禁用外部点击时关闭模式

    我正在制作一些使用模式的博客物质化 但我的模态 onclick 外部和错误数据有问题 这是我的代码 main js function changepassword var user userlog val var content conte
  • 使用 PHP 更新 XML 节点

    我有一个 XML 文件 test xml
  • PHP Github Pull 脚本错误“权限被拒绝(公钥)”

    我已经设置了一个 PHP 脚本来执行 GitHub 拉取 这包含在我的 Github 文件夹中 home mysite public html github github pull php 我的服务器已经有 SSH 公钥 就像我执行git
  • Laravel 读写连接不同步

    我在 Laravel 5 2 应用程序中使用读写 MySQL 连接设置 mysql gt write gt host gt env DB HOST WRITE localhost read gt host gt env DB HOST RE
  • Memcache 不会刷新或清除内存

    我一直在尝试清除我的内存缓存 因为我注意到使用时存储占用了近 30 的服务器内存ps aux 所以我运行了以下 php 代码 memcache new Memcache memcache gt connect localhost 11211
  • 写入 xml 文件时允许的内存大小已耗尽(尝试分配 4459414 字节)[重复] 67108864 字节

    这个问题在这里已经有答案了 可能的重复 php 中允许的内存大小已耗尽 尝试分配 43148176 字节 33554432 字节 https stackoverflow com questions 415801 allowed memory
  • 在 PHP 中将整数转换为十六进制值

    如何将PHP中第一类中的数字转换为第二类中的数字 是否有内置函数来转换数字 也是我的标题 将整数转换为十六进制值 甚至正确 class Permission const READ 1 const UPDATE 2 const DELETE
  • 为什么 asort 适用于多维数组?

    抱歉 如果这是一个非常基本的问题 我无意中发现asort http php net manual en function asort php似乎适用于多维数组 示例 PHP animals array 1 gt array name gt
  • Yii 未检测到骆驼案例操作

    伊伊正在给我404 Error如果我声明这样的操作 站点控制器 php public function actionRegisterUser 这就是我在main php label gt Register User url gt site
  • PHP 中的异或加密

    我是 Xor 加密的新手 并且在使用以下代码时遇到了一些问题 function xor this string Let s define our key here key magic key Our plaintext ciphertext
  • 从检查元素隐藏 ''

    我有这个 HTML 和 PHP 联系表
  • 自定义 WordPress 画廊 html 布局

    当使用默认媒体上传器在 WordPress 中创建图像库时 WordPress 将图像包装在一堆 HTML 标记中 如何在生成之前覆盖它 以便我可以输出所需的标记并更改创建图库布局的方式 目前 WordPress 生成的代码如下 div d
  • 将 echo 和 print 合并到一个语句中

    echo 1 print 2 3 返回 214 脚本如何以 14 结尾 当你这样做时 echo 1 print 2 3 PHP 会做 demo http codepad viper 7 com OfrNrs line op fetch ex
  • JAVA中遍历JSON数据

    我是 JSON 新手 我使用 HTTPUrlConnections 并在 JAVA 程序中获得一些响应 响应数据将类似于 data id 1 userId 1 name ABC modified 2014 12 04 created 201
  • Mysql加密/存储敏感数据,

    我的 PHP 网站有以下内容 启用 SSL 饼干 session set cookie params cookieParams lifetime cookieParams path cookieParams domain secure ht

随机推荐

  • Nodejs POST 请求多部分/表单数据

    我正在尝试通过 POST 请求上传照片request module 根据自述文件我应该能够做到这一点 var r request post http posttestserver com post php requestCallback v
  • 使用 COM 互操作将 BSTR 从 C++ 编组到 C#

    我有一个用 C 编写的进程外 COM 服务器 由一些 C 客户端代码调用 服务器接口之一上的方法向客户端返回一个大的 BSTR 我怀疑这会导致内存泄漏 该代码有效 但我正在寻求有关编组 BSTR 的帮助 稍微简化一下 服务器方法的 IDL
  • htaccess - 重定向到子文件夹而不更改浏览器 URL

    我有一个域 其中包含具有 Web 应用程序结构的子文件夹 我添加了一个 htaccess在我的根域上指向我的子文件夹 Web 应用程序上的公共文件夹 它工作正常 但是当我输入时www example com浏览器 URL 更改为www ex
  • 无法更新 Xcode 4.2。错误:请查阅 var/log/install.log 了解更多详细信息?

    UPDATE 既然这个问题得到了一些看法 我想我最好强调这样一个事实 我解决了问题简单地通过从 Mac App Store 重新下载 Xcode 重新安装后 它甚至给了我一个方便的选项来删除以前的版本并将其替换为新版本 希望这可以帮助遇到同
  • 从 std::thread 获取返回码? [复制]

    这个问题在这里已经有答案了 可能的重复 C std thread 的简单返回值 有没有办法从 std thread 获取返回码 我有一个返回整数的函数 我希望能够在线程执行完毕时从该函数获取返回代码 不 不是这样的std thread is
  • 有界度生成树中的 np 完整性

    我理解为什么有界度生成树被认为是具有 1 或 2 度的 NP 完全 它是哈密顿路径问题的一个实例 但我不明白为什么这适用于度 gt 2 如果有人可以解释为什么这是度 gt 2 的 NP 完全问题 这将是最有帮助的 好吧 我认为你可以从有界
  • R Shiny:在服务器端使用 Actionbutton 的 Onclick 选项

    我想制作一个闪亮的应用程序 用户可以在其中按下操作按钮 然后触发服务器端的一些代码 在 www 文件夹中创建一个文件 然后打开 下载该文件 假设该文件是 test txt 在我的例子中 它将是各种 R Excel 和 exe 文件 这些文件
  • Visual Studio 2010“按任意键继续...”不显示[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 当我的应用程序完成执行时 按任意键继续 字样不会显示在控制台中 我知道这个提示应该在 启
  • 聚合匹配的项目在 mongodb 中不起作用

    我正在尝试根据某些匹配条件获取数据 首先我尝试过这个 这里的ending date是完整的日期格式 Offer aggregate match carer id req params carer id status 3 group id y
  • JavaScript 按钮重定向

    试图让我的按钮充当链接 尝试过 a 标签 如果您在新选项卡中打开它会起作用 但如果您单击它则不起作用 然后尝试了这段代码 但什么也没有 建议 a
  • Angular-cli 资产优化中的“JavaScript 堆内存不足”

    我正在 Angular cli 项目中创建传单地图 地图图块本地存储在 assets 文件夹中 因为它是栅格地图 问题是 当我有很多地图缩放级别时 我有超过 28 万张图像 大小大约为 1 1 GB 而且它会变得更大 当我使用ng serv
  • 如何在 Java 中查找给定服务器的 DNS MX 记录?

    有人知道如何使用标准库在java中获取MX地址 例如来自gmail com 吗 或者我需要下载外部的吗 我正在使用 netbeans 如果它有帮助的话 如果它为此提供了一些东西 我也在java中为此寻找标准库 不成功 然后我用过dnsjav
  • 获取浏览器中的快捷键组合

    我想制作一个页面 其中某些输入和链接附加有访问键 并且我想通知用户需要按什么组合键来激活输入或链接 有没有办法通过JavaScript自动获取浏览器的accesskey组合键 或者我是否需要检测它是哪个浏览器 然后只使用一个存储浏览器使用的
  • 如何在 vim 中用 & 符号替换?

    正如标题所说 我想用与号 替换 制表符 I use s t g 当然这是行不通的 我在 mac os x 上使用 vim 如果这有影响的话 谢谢 您确定问题出在 符号上吗 我收到了更多关于该标签的投诉 别忘了逃避它 s t g
  • 求大 n 和 k 模 m 的二项式系数

    我想计算 nCk mod m 具有以下约束 n k m 10 9 7 我读过这篇文章 但这里 m 的值为 1009 因此 使用卢卡斯定理 我们只需要计算 1009 1009 个不同的 aCb 值 其中 a b 如何在上述限制下做到这一点 我
  • Ext JS 点击事件

    我有以下事件 Ext onReady function Ext select gallery item img on click function e Ext select gallery item removeClass gallery
  • 引擎“节点”与此模块不兼容。预期版本“12.x”。得到“14.8.0”

    我尝试做一个yarn add 但我有这个错误 The engine node is incompatible with this module Expected version 12 x Got 14 8 0 运行这些命令 sudo npm
  • 处于调试视图,程序终止后,切换回 Eclipse 中的 Java 视图

    我正在寻找一种在我正在调试的应用程序结束后返回到 Eclipse 中的标准 Java 视图的方法 有可能做到这一点吗 这是其他一些 IDE 例如 Visual Studio 中的默认行为 我更愿意这样做 必须再次手动将视图切换到初始视图 这
  • 在 OSX 上安装 Typesafe 激活器

    我正在尝试安装类型安全激活器 scala AKKA play 框架 激活器 我有优胜美地 OSX 我的 bash 是 Oh my ZSH 我已经安装并导出了 JDK 1 7 我下载并解压了文件 typesafe activator 1 2
  • 多维数组上的 json_encode() - 使用字符串键

    我正在使用 PHP 创建一个非常大的多维数组 每个对象包含名称 ID ParentID 和 Children Children 是具有相同格式的更多对象的数组 命名每个对象的 ID 至关重要 这有助于我将每个对象置于正确的父对象下 在下面的