php - MYSQL JSON - 如何访问由数字键索引的嵌套 JSON 对象?

标签 php mysql json mysql-8.0 document-store

我正在尝试提取由数字键索引的 JSON 文档子树。

我的 JSON 字符串:

{
    "pk": 20,
    "tree": {
        "100": {
            "values": [
                1, 2, 3
            ]
        },
        "abc" => 999
    }
}

我的代码:

$session = mysql_xdevapi\getSession("mysqlx://root:letmein@localhost");
$schema = $session->getSchema('test');
$coll = $schema->getCollection('myColl');
$expr = mysql_xdevapi\Expression('$.tree.*');
$result = $coll->find('$.pk=20')->fields(['$.tree[100]'])->execute();

使用 '$.tree[100]' 结果

    [
        'tree' => null
    ]

使用 '$.tree.*' 结果

    [
        'tree' => [
            0 => [
                1, 2, 3
            ],
            1 => 999
        ]
    ]

使用 '$.tree.abc' 结果

    [
        'tree' => [
            'abc' => 999
        ]
    ]

因此,'$.tree.abc' 有效,但 '$.tree[100]' 无效。

问题。如何使用“$.tree[100]”表达式访问 values 键?

谢谢!

最佳答案

感谢报告,以下案例:

$expr = mysql_xdevapi\Expression('$.tree."100"'); 
$result = $coll->find('$.pk=25')->fields($expr)->execute();

将在计划于 10 月 14 日发布的 mysql_xdevapi v8.0.18 中得到支持。

关于php - MYSQL JSON - 如何访问由数字键索引的嵌套 JSON 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57169316/

相关文章:

php - 如何在url中使用echo

php - 显示文件夹中的图像(幻灯片)

php - 计算总条目数并在 Laravel 中制作一个数字列表

Java json 解析

java - 如何迭代json字符串

json - 牛顿软件 JSON

php - 如果我不选中复选框,则未定义索引

php - 您如何确保查询始终返回结果并按相关性对结果进行排序?

mysql - 仅在更新特定列时更新日期列

mysql - 混淆 mysql select 结果与 LIKE 和多个零 (%00%)