1

我已经从 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

非常感谢有关此方面的帮助。

谢谢

4

3 回答 3

2

为该任务编写了(许多)小型命令行实用程序,也许您会发现其中一个有用:

于 2013-10-28T16:57:38.513 回答
1

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

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

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

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

于 2013-10-28T17:01:29.847 回答
1

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

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

from假设您从andto成员中移除周围的 {}

"来源":{"来自":"john@xxx.com","to":"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"
于 2017-09-03T17:09:18.800 回答