【问题标题】:Transform JSON in CSV format to table将 CSV 格式的 JSON 转换为表格
【发布时间】:2013-11-07 13:41:32
【问题描述】:

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

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

谢谢

【问题讨论】:

  • 虽然上面的链接可能包含所需的输入输出和输出现在,但最好在此处包含问题的基本部分并提供链接以供参考。如果链接页面发生变化,链接可能会失效。

标签: java sql json csv


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

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

      "source":{"from":{"john@xxx.com"},"to":{"mycompany@abc.com"},

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

      "source":{"from":"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"
      

      【讨论】:

        猜你喜欢
        • 2015-03-26
        • 1970-01-01
        • 1970-01-01
        • 2020-02-04
        • 2011-05-07
        • 2018-08-15
        • 2020-08-25
        • 2021-03-19
        相关资源
        最近更新 更多