2017-02-09 88 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应用程序改变它。