Ber*_*aus 1 mysql coldfusion json coldfusion-9
我从ColdFusion 9.0.1中的MySQL 5.7查询中获取了一个JSON字符串.这是我的查询:
SELECT  (
        SELECT  GROUP_CONCAT(
                  JSON_OBJECT(
                    'nrtype', nrt.nrtype,
                    'number', nr.number
                    )
                )
        ) AS nrJSON
FROM    ...
Run Code Online (Sandbox Code Playgroud)
返回的数据如下所示:
{"nrtype": "Phone 1", "number": "12345678"},{"nrtype": "E-Mail 1", "number": "some@email.com"}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用DeserializeJSON()它时,我收到以下错误:
JSON parsing failure at character 44:',' in {"nrtype": "Phone 1", "number": "12345678"},{"nrtype": "E-Mail 1", "number": "some@email.com"}
Run Code Online (Sandbox Code Playgroud)
我有点困惑.我想得到的是由该DeserializeJSON()函数创建的结构.
我能做什么?
这不是解析器描述的有效JSON.如果将JSON包装在方括号'['和']'中,它将是有效的(或至少是可解析的).他们将使它成为一系列结构.不知道如何让MySQL返回这些括号内的数据?
我想你可以使用ColdFusion添加括号,但我更愿意让源代码正确执行.
jsonhack = '[' & queryname.nrJSON & ']';
datarecord = DeserializeJSON(jsonhack);
writeDump(datarecord);
Run Code Online (Sandbox Code Playgroud)
我创建了一个您可以在此处看到的数据示例 - trycf.com gist
从评论
解决方案确实是[将以下内容添加到SQL语句中]:
CONTACT('[', 
    GROUP_CONCAT(
        JSON_OBJECT(...)
    ),
']')
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           254 次  |  
        
|   最近记录:  |