繁体   English   中英

将JSON转换为CSV的更简单方法?

[英]Easier way to convert JSON to CSV?

我有一个漂亮的JSON字符串,看起来像这样:

[[{
    "Table":{
        "Properties":{
            "name":"ABOUT",
            "uniqueConstraints":"{}"
        },
        "Attributes": [{
            "name":"NAME",
            "unique":"true",
            "nullable":"false",
            "insertable":"false",
            "updatable":"false"
        },{
            "name":"VERSION",
            "unique":"true",
            "nullable":"false",
            "insertable":"false",
            "updatable":"false"   // I will need to go back through and add empty element for 'section'
        },{
            "name":"BUILD",           
            "insertable":"true",        
            "section": 1                
        }],
        "FileName": "About.java"
}]]

我正在尝试获得这样的CSV:

Entity | Property | Unique | Nullable | Insertable | Updatable | Section
=======+==========+========+==========+============+===========+=========
About  | Version  | True   | False    | False      | False     | 
About  | Build    | False  | False    | True       | False     | 1

我目前正在使用大量代码来解析该代码,我只是想知道是否有人知道与我直接关联的更简单的方法来完成此任务:

  1. 创建一个标题数组,我们称它为header
  2. 创建一个csv数组,我们称其为csv
  3. 遍历文件中的每个文件和每个表
  4. 遍历每个表中的属性
  5. csv创建一个名为row的新数组
  6. 将表名和Table.Attr[i].name推入row
  7. 解析Attr中的每个键/值(名称Attr除外)
  8. 如果密钥不是header ,请按入
  9. 使用header.indexOf(key)决定将值放置在csv[row]
  10. 完成所有操作后,请返回并向每行添加额外的空元素。
  11. 对于每一行, Join(",") + "\\n"

是的,非同小可的问题。 我还没有尝试过,但是有一个小伙子写了一篇文章,他做了类似的事情。 可能值得花费您几分钟的时间,看看它是否接近您的需求https://sunlightfoundation.com/blog/2014/03/11/making-json-as-simple-as-a-spreadsheet/

他谈论有关处理数据数组和填充列的问题。

暂无
暂无

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

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