【问题标题】:JSON: handle null value from MySQL exportJSON:处理来自 MySQL 导出的空值
【发布时间】:2016-06-14 10:32:43
【问题描述】:

我将数据从 MySQL 导出到 JSON 文件,但由于 null 值而出现错误。我该如何处理?

SQL 查询:

select industry, ... from table1; 

某些行业给出空值的地方:

JSON 格式

[{"industry":"entertainment", ...}, {"industry":"", ...}, {"industry":NULL, ...}]

错误是由于数组中的第三个对象值(即NULL)

我试过了:

select cast(industry as char), ... from table1;

不幸的是,它仍然给出了同样的错误。因为在 MySQL 单元格中,它显示的是 NULL 值。

谢谢!

更新:
由于每个对象中都会有其他变量,我想将 SQL 中的 NULL 值更改为“”或“NULL”。

我使用突出显示的按钮从 MySQL 导出数据:

【问题讨论】:

  • 您需要NULL 值吗?可能是select industry from table1 where industry is not null;?
  • @2kai,嗨,我需要 NULL 值,我希望将其更改为“”或“NULL”。原因是我将在每个对象中都有其他变量。如果我使用您的查询,我可能会丢失一些必需的数据。我已经更新了我的问题。谢谢!
  • 你是如何生成无效的 JSON 的?我们无法帮助您修复我们一无所知的流程。在 SQL、JSON 和大多数其他语言中,带有单词“NULL”的字符串与空值完全不同。
  • 暂时有效,如何判断原始数据库中的值是空字符串还是NULL
  • 最后一张截图不属于 MySQL。 MySQL 没有按钮或窗口,它没有任何类型的用户界面。

标签: mysql json data-extraction


【解决方案1】:

根据JSON specification,正确值为null(小写):

JSON 可以表示四种基本类型(字符串、数字、布尔值、 和 null)和两种结构化类型(对象和数组)。

...和:

JSON 值必须是对象、数组、数字或字符串,或其中之一 以下三个字面名称:

false null true

如果您得到大写的 NULL,您要么是手动编写 JSON,要么您的 JSON 库存在严重错误。

【讨论】:

  • 嗨,我没有手动编写 JSON,值 NULL 来自 MySQL 单元格。我添加了一个新的屏幕截图。
  • 你的意思是你有一个type JSON的MySQL列?
  • 不,我将数据从 MySQL 导出到 JSON 文件中。但是在某些单元格中,它们给出了屏幕截图中显示的“空”值。因此导出后,它给出 [{...},{...},{"industry":NULL}]
  • 那么错误显然是在您用来将数据从 MySQL 导出到 JSON 文件的工具/代码/脚本/过程中。但我的印象是你并不想解决这个问题,对吗?
  • 是的,你是对的,我用来导出数据的过程是问题所在。我附上了一张图片来展示我如何导出数据。当我只是单击按钮而不编写任何代码时,不知道如何解决这个问题。
【解决方案2】:

您可以使用ifnull 转换您的NULL

select ifnull(industry, '') from table1;

【讨论】:

  • 谢谢!像魅力一样工作:)
  • 为什么需要这样做?
  • 这让我想起了一个客户,他的数据库中有一个“EMAIL”列,当他的客户没有电子邮件地址时,他输入了“none”:)
  • 我想 MySQL 导出到 JSON 并不完美。
  • 据我所知,MySQL 导出到 JSON 甚至不存在。您必须编写自己的代码或使用其他人的代码。
猜你喜欢
  • 2019-03-18
  • 1970-01-01
  • 2021-01-14
  • 2021-09-09
  • 1970-01-01
  • 1970-01-01
  • 2012-07-05
  • 2023-03-22
  • 2015-06-25
相关资源
最近更新 更多