2016-06-14 32 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