来自mysql的嵌套json对象:错误“缺少字符串中的右引号”,即使是静态值

时间:2019-02-06 00:55:48

标签: mysql json

我正在尝试从MySQL生成嵌套的分层JSON。

我不断收到错误消息:

错误代码:3141。函数cast_as_json的参数1中的JSON文本无效:“字符串中缺少右引号。”在位置1026。

我尝试了以下操作,并始终遇到相同的错误:

  • 将有问题的列名称括在“ ...”中
  • 用JSON_QUOTE(...)封闭了有问题的列
  • 用包含空格字符的静态字符串替换了有问题的列
  • 将CAST(...)中有问题的列括为JSON

以下测试使问题消失了,但显然不是一种选择:

  • 用不包含空格字符的静态字符串替换有问题的列=>不会出现问题
  • 用不包含空格的其他列替换有问题的列=>不会出现问题

我已经搜索了几个小时,真的不知道了。

该问题与下面描述的模式非常相似 How do I generate nested json objects using mysql native json functions?

感谢任何想法!

欢呼F

1 个答案:

答案 0 :(得分:3)

您使用的是GROUP_CONCAT吗?如果是这样,则有可能因为太长而将您的字符串切掉,从而导致无效的JSON字符串。

尝试更改group_concat_max_len的前100000个字符的长度:

SET SESSION group_concat_max_len = 100000;

我知道为时已晚:)