gpt4 book ai didi

php - 多维数组上的 json_encode() - 带有字符串键

转载 作者:可可西里 更新时间:2023-11-01 13:50:35 24 4
gpt4 key购买 nike

我正在使用 PHP 创建一个非常大的多维数组。每个对象包含 Name、ID、ParentID 和 Children。 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",
"ParentID": "101",
"Name": "Child Two",
"Children": {
"104": {
"ID": "104",
"ParentID": "103",
"Name": "Child Child One"
}
}
},

有谁知道如何解决这个问题?

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

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

最佳答案

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

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

这个数组没有命名索引,也没有任何添加索引的规定。

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

关于php - 多维数组上的 json_encode() - 带有字符串键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16419689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com