2016-06-14 95 views
-1

我将MySQL中的数据导出到JSON文件中,但由于空值导致错误。我该如何处理?JSON:处理MySQL导出的空值

SQL查询:

select industry, ... from table1; 

其中一些业内人士给出了空值:
enter image description here

JSON格式

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

的错误是由于在第3个对象的值数组(即NULL) enter image description here

我想:

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

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

谢谢!因为每个对象中都会有其他变量,所以我想将SQL中的NULL值更改为“”或“NULL”。

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

+0

你需要'NULL'值?可能是从行业不是零的表1中选择行业; – 2kai

+0

@ 2kai,嗨,我需要NULL值,我希望将其更改为“”或“NULL”。原因是我将在每个对象中都有其他变量。如果我使用您的查询,我可能会丢失一些所需的数据。我已更新了我的问题。谢谢! – Shawn

+0

你是如何产生无效的JSON?我们无法帮助您修复我们不了解的流程。包含单词“NULL”的字符串与SQL,JSON和大多数其他语言中的空值完全不同。 –

回答

0

您可以使用ifnull投下您NULL

select ifnull(industry, '') from table1;

+0

谢谢!工作就像一个魅力:) – Shawn

+0

为什么这应该是必要的? –

+0

它让我想起了一个客户,他的数据库中有一个“EMAIL”列,当他的客户没有电子邮件地址时,他输入“none”:) –

1

根据该JSON specification,正确的值是null(小写):

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

...和:

甲JSON值必须是一个对象,数组编号,或串,或一个 以下三个文字名称:

false null true 

如果你得到大写NULL你要么手动编写JSON,要么你的JSON库有一个严重的错误。

+0

嗨,我没有手动编写JSON,值NULL来自MySQL单元格。我添加了一个新的屏幕截图。 – Shawn

+0

你的意思是说你有一个[JSON类型](https://dev.mysql.com/doc/refman/5.7/en/json.html)的MySQL列? –

+0

不,我将MySQL中的数据导出为JSON文件。但在某些单元格中,它们会给出屏幕截图中显示的“空”值。因此,在导出之后,它会给出[{...},{...},{“industry”:NULL}] – Shawn