2017-02-09 83 views
0

我有我喜歡用加載數據信息填充的MySQL表。如何將JSON字符串加載到JSON列中

其中一列是JSON類型,我想要上傳整個json字符串。問題是,它似乎真的很難上傳的JSON字符串,在那裏我得到:

Invalid utf8 character string: '{' 

一行從我的CSV文件:

25621943694,john,johnny,ACTIVE,organization,1234,{\」name\」: \」cicd-prod\」},2016-10-22 16:57:36 

我的負荷數據聲明:

LOAD DATA LOCAL INFILE 'test123.csv' 
INTO TABLE projects 
FIELDS TERMINATED BY ',' (project_number,project_id,project_name,lifecycle_state,parent_type,parent_id,raw_project,create_time); 
+2

看起來'''不是普通的引號字符。 –

+3

你不應該在JSON中有捲曲的引號,它們應該是ASCII雙引號。 – Barmar

+0

如果您試圖將實際的JSON字符串存儲爲MySQL列,那麼如果可以的話,可能會更好地修改傳入的JSON,以便字段由單引號分隔。這樣你可以將整個JSON塊存儲爲一個MySQL字符串。即...... 1234「{'name':'cicd-prod'}」,2016-10-22 16:57:36' – jiveturkey

回答

1

在JSON中,根據the ECMA standard,「」字符串是用引號(U + 0022)包裹的Unicode代碼點序列。「」您的CSV不使用U+0022。它使用U+0201D - Right Double Quotation Mark。它甚至沒有正確使用它們,因爲我無法在智能報價中放置足夠多的引號。它使用右側和左側的正確引號。

這些報價必須轉換回枯燥的舊U + 0022 - 報價單。你需要與任何生成CSV的人聊天。這也可能是一個過分熱心的Office應用程序改變它。