繁体   English   中英

将CSV格式的JSON转换为表格

[英]Transform JSON in CSV format to table

我已经从URL中提取了JSON数据字符串,并将其存储在CSV文件中。

我现在面临的问题是我想以表格式表示此数据,以便可以将其上载到数据库。

我的原始JSON数据示例如下:

{"pizza":[{"url":"www.pizza.com/1.json","id":1,"via":{"channel":"web","source":{"from":{"john@xxx.com"},"to":{"mycompany@abc.com"},"rel":null}},"created_at":"2013-07-09T08:38:35Z","updated_at":"20132-08-13T09:33:00Z","type":"incident"}]

我的CSV格式JSON的示例:

http://s18.postimg.org/alwadflsp/my_Code.png

我所需输出的示例:

http://s18.postimg.org/4md4niqe1/myoutput.png

非常感谢您的帮助。

谢谢

有为该任务编写的(大量)小型命令行实用程序,也许您会找到其中一个有用的工具:

如果您的最终目标是将从JSON获得的数据保存在数据库中。

我的方法是-1)使用JSONObject从JSON提取相关信息。 JSONOBJECT

2)创建一个包含所有信息的bean。

3)将该bean传递给Database类以存储相应的值。

这是使用jq的解决方案。 但是,这部分数据不是合法的JSON

“源”:{“来自”:{“ john@xxx.com”},“至”:{“ mycompany@abc.com”},

假设您从fromto成员中删除了周围的{}

“源”:{“来自”:“ john@xxx.com”,“至”:“ mycompany@abc.com”,

然后如果filter.jq包含以下过滤器

[
    .pizza[]
  | {url, id} + (.via | {channel} + (.source | {from, to})) + {created_at, updated_at}
]
| (.[0] | keys_unsorted)
, (.[]  | [.[]])
| @csv  

data.json包含您的示例数据,然后命令

$ jq -M -r -f filter.jq data.json

产生

"url","id","channel","from","to","created_at","updated_at"
"www.pizza.com/1.json",1,"web","john@xxx.com","mycompany@abc.com","2013-07-09T08:38:35Z","20132-08-13T09:33:00Z"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM