【问题标题】:SQL server: How to Modify a JSON element value in a nested JSON arraySQL 服务器:如何修改嵌套 JSON 数组中的 JSON 元素值
【发布时间】:2023-03-26 11:56:01
【问题描述】:

如果我有以下 JSON (@CarDataJsontest),例如

{
  "house": {
    "gate": [
      "Car1",
      "Car911",
      "Car3",
      "Car4"
    ]
  }
}

如果我需要做的是将car911修改为car2 我所要做的就是在下面

SET @CarDataJsontest= JSON_MODIFY(@CarDataJsontest, '$.house.gate[1]','Car2')

现在我有一个类似于下面的 JSON @CarDataJson

{
  "house": {
    "gate": [
      [
        "Car1",
        "Car911",
        "Car3",
        "Car4"
      ]
    ]
  }
}

现在我需要做什么才能将car911修改为car2?

因为使用下面的查询

SET @CarDataJson = JSON_MODIFY(@CarDataJson , '$.house.gate[0].[1]','Car2')

我只是得到一个错误。

在位置 X 发现意外字符“[”

【问题讨论】:

  • 你太接近了。 $.house.gate[0][1].
  • 我认为您在某处打错了字。您的 JSON_MODIFY 对我来说可以正常工作。
  • @JeroenMostert 感谢它的工作。

标签: sql json tsql sql-server-2017


【解决方案1】:

感谢@JeroenMostert 的评论

如果我有一个类似于下面的 JSON @CarDataJson

{
  "house": {
    "gate": [
      [
        "Car1",
        "Car911",
        "Car3",
        "Car4"
      ]
    ]
  }
}

将car911修改为car2所需要做的就是

SET @CarDataJson = JSON_MODIFY(@CarDataJson , '$.house.gate[0][1]','Car2')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    相关资源
    最近更新 更多