当前位置: 首页 > 知识库问答 >
问题:

从Presto varchar列解析JSON失败

赫连宏伯
2023-03-14
sql prettyprint-override">WITH
data(c) AS (
    SELECT message from mydb.mytable
),
parsed AS (
    SELECT cast(json_parse(c) as map(varchar, varchar)) AS m
    FROM data
)
SELECT m['action'], m['uuid']
FROM parsed

共有1个答案

舒仲渊
2023-03-14

json_parse+cast处理示例数据:

SELECT CAST(json_parse(str) AS map(varchar, varchar))
FROM (VALUES '{"action":"send","timestamp":1566432054,"uuid":"1234"}') t(str);

我在Presto317上测试了这个:

presto> SELECT CAST(json_parse(str) AS map(varchar, varchar))
     -> FROM (VALUES '{"action":"send","timestamp":1566432054,"uuid":"1234"}') t(str);
                     _col0
------------------------------------------------
 {action=send, uuid=1234, timestamp=1566432054}
(1 row)

我的猜测是某些数据行与您的示例不同,并且该数据行不能cast。您可以使用try找到它:

SELECT str
FROM your_table
WHERE str IS NOT NULL
AND try(CAST(json_parse(str) AS map(varchar, varchar))) IS NULL;
 类似资料:
  • 下面是我的文件: 更新: 我运行了一个稍微不同的命令: PS c:\users\me\downloads\curl-7.64.1-win64-mingw\bin>.\curl.exe-h“content-type:application/json”-xput'http://127.0.0.1:31311/bo ok/1'-d'{\“indexid\”:\“book\”,\“documentid\”

  • 问题内容: 我正在尝试在JavaScript中解析bit.ly JSON响应。 我通过XmlHttpRequest获取JSON。 我在Firefox插件中执行此操作。运行时,出现该行的错误“ jsonResponse is undefined” 。我在这里解析JSON时做错什么了吗?还是这段代码有什么问题? 问题答案: 我的新方法: TL; DR 只要您不必发送同步请求或支持旧的浏览器,就建议使用

  • 问题内容: 有没有最简单的方法来从URL解析JSON?我使用Gson找不到任何有用的示例。 问题答案: 首先,您需要下载URL(作为文本): 然后您需要解析它(这里有一些选项)。 GSON(完整示例): 输出:

  • 问题内容: 我已经使用Newtonsoft的JSON序列化器序列化了一个对象,而DateTime的实现方式是: 当我在其上$ .evalJSON()时,它是一个对象,但在它上找不到任何正常的Date方法,例如toUTCString。 有什么办法可以解决吗? 问题答案: 使用Json.NET附带的JsonConverters之一处理日期以获得更好的格式。JavaScriptDateTimeConve

  • 我尝试在https://flutter.io/cookbook/networking/background-parsing/的后台实现解析JSON,我得到了下面的错误。当我使用Android模拟器时,错误也相同。 我用的是macOs HighSierra。我安装IntelliJ和Fluter和黑暗插件。我在Flutter上测试了大多数例子,结果都很好。我还创建了一个演示和它的工作。我不明白为什么这

  • 问题内容: 有没有最简单的方法来从URL解析JSON?我使用Gson找不到任何有用的示例。 问题答案: 首先,你需要下载URL(作为文本): 然后你需要解析它(这里有一些选项)。 GSON(完整示例): 输出: 试试json.org上的Java API :