如何从使用 FOR JSON PATH 的 SQL 查询中获取格式正确的 JSON 数组?

刘易斯

我正在使用带有 FOR JSON PATH 的 sql 查询,它应该给出一个 JSON 结果。但是,我不确定如何在 PHP 中返回结果。该命令可以完美地作为 SQL 命令运行,但是当将它作为准备好的语句执行时,我遇到了一些问题。

这是我的查询...

$getUsersTeams = $this->dbConn->prepare("SELECT T.Id AS Id, T.TeamName AS TeamName, T.TeamImage AS Image, T.Description AS Description, T.IsActive AS IsActive, TU.IsAdmin AS IsAdmin,
                                                    ( SELECT TU.UserId AS id, U.FirstName, U.LastName, U.DisplayPicture
                                                    FROM TeamUsers TU
                                                    INNER JOIN Users U ON TU.UserId = U.Id
                                                    WHERE TU.TeamId = T.Id
                                                    FOR JSON PATH
                                                    ) AS [Members]
                                                    FROM TeamUsers TU
                                                    INNER JOIN Teams T ON T.Id = TU.TeamId
                                                    WHERE UserId = :userId
                                                    FOR JSON PATH, INCLUDE_NULL_VALUES, ROOT('Teams')");
            $getUsersTeams->bindParam(':userId', $this->userId);

            if(!$getUsersTeams->execute())
            {
                return false;
            }

            $usersTeamsResult = $getUsersTeams->fetch(PDO::FETCH_ASSOC);
        header("content-type: application/json");
        echo $usersTeamsResult;
            exit;

我尝试过 fetch、fetchall 和 while 循环来获取数据。

从我尝试过的所有 3 种方法中,它总是与“数组”相呼应。但是,如果我使用 fetchAll 来执行此操作...

echo json_encode($usersTeamsResult);

...那么结果至少会回响,但格式不正确,就像这样......

"JSON_F52E2B61-18A1-11d1-B105-00805F49916B": "{\"Teams\":[{\"Id
\":1,\"TeamName\":\"GroupName1\",\"Image\":null,\"Description\":null,
\"IsActive\":true,\"IsAdmin\":false,\"Members\": .....ETC   "}]}]}"

我没有包括整个回复,但这是它的要点。我试过 stripslashes 来删除斜线,但这不起作用。

我只想得到响应并按原样回应。有谁知道我如何实现这一目标?谢谢!

刘易斯

我通过这样做让它工作,不知道为什么我必须经历这一切才能让它工作,但是是的......

$usersTeamsResult = $getUsersTeams->fetchAll(PDO::FETCH_ASSOC);
            $myArray = $usersTeamsResult[0];
            $usersTeams = json_decode(array_shift($myArray), true);

然后 $usersTeams 是格式正确的关联数组,然后我可以使用 json_encode 对其进行编码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL JSON PATH 从较大的 json 集中提取后如何通过索引访问 json 数组

来自分类Dev

如何从JSON格式的SQL中获取数据

来自分类Dev

如何使用java在json中获取数组?

来自分类Dev

如何使用Spark SQL根据JSON数组的大小查询JSON数据

来自分类Dev

如何使用Spark SQL根据JSON数组的大小查询JSON数据

来自分类Dev

如何从JSON获取数组

来自分类Dev

如何从Scala中的json格式的表格中获取数组?

来自分类Dev

如何从Scala中的json格式的表格中获取数组?

来自分类Dev

如何在javascript中以json格式从数组中获取数据

来自分类Dev

使用case语句时,SQL Server 2016 FOR JSON PATH返回字符串而不是数组

来自分类Dev

PHP从SQL查询输出中获取Json格式

来自分类Dev

如何使用JSON从查询返回数组?

来自分类Dev

如何使用JSON从查询返回数组?

来自分类Dev

查询Json如何获取必须数组中的元素

来自分类Dev

在Snowflake中使用SQL获取JSON数组的索引

来自分类Dev

在Snowflake中使用SQL获取JSON数组的索引

来自分类Dev

如何从数组中数组中的JSON数组中获取元素

来自分类Dev

使用SQL中的数据在C#中创建Json数组

来自分类Dev

如何使用数组中的JSON数据

来自分类Dev

如何从json对象获取json数组?

来自分类Dev

如何在 json FROM SQL 中创建数组标题?

来自分类Dev

如何使用JavaScript从JSON数组获取JSON值

来自分类Dev

如何使用ajax从json api获取json数组

来自分类Dev

如何创建 SQL 查询以使用 1 个属性对 JSON 数组进行排序?

来自分类Dev

使用PHP对来自SQL查询的嵌套数组进行分组以获取jqTree插件的JSON

来自分类Dev

使用属性查询json数组

来自分类Dev

如何使用 jQuery 从 JSON 对象中的数组中获取值?

来自分类Dev

SQL查询返回包含数组的Json

来自分类Dev

如何获取JSON数组的值?

Related 相关文章

  1. 1

    SQL JSON PATH 从较大的 json 集中提取后如何通过索引访问 json 数组

  2. 2

    如何从JSON格式的SQL中获取数据

  3. 3

    如何使用java在json中获取数组?

  4. 4

    如何使用Spark SQL根据JSON数组的大小查询JSON数据

  5. 5

    如何使用Spark SQL根据JSON数组的大小查询JSON数据

  6. 6

    如何从JSON获取数组

  7. 7

    如何从Scala中的json格式的表格中获取数组?

  8. 8

    如何从Scala中的json格式的表格中获取数组?

  9. 9

    如何在javascript中以json格式从数组中获取数据

  10. 10

    使用case语句时,SQL Server 2016 FOR JSON PATH返回字符串而不是数组

  11. 11

    PHP从SQL查询输出中获取Json格式

  12. 12

    如何使用JSON从查询返回数组?

  13. 13

    如何使用JSON从查询返回数组?

  14. 14

    查询Json如何获取必须数组中的元素

  15. 15

    在Snowflake中使用SQL获取JSON数组的索引

  16. 16

    在Snowflake中使用SQL获取JSON数组的索引

  17. 17

    如何从数组中数组中的JSON数组中获取元素

  18. 18

    使用SQL中的数据在C#中创建Json数组

  19. 19

    如何使用数组中的JSON数据

  20. 20

    如何从json对象获取json数组?

  21. 21

    如何在 json FROM SQL 中创建数组标题?

  22. 22

    如何使用JavaScript从JSON数组获取JSON值

  23. 23

    如何使用ajax从json api获取json数组

  24. 24

    如何创建 SQL 查询以使用 1 个属性对 JSON 数组进行排序?

  25. 25

    使用PHP对来自SQL查询的嵌套数组进行分组以获取jqTree插件的JSON

  26. 26

    使用属性查询json数组

  27. 27

    如何使用 jQuery 从 JSON 对象中的数组中获取值?

  28. 28

    SQL查询返回包含数组的Json

  29. 29

    如何获取JSON数组的值?

热门标签

归档