首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用JQ将复杂的JSON (具有数组和不同数据类型)转换为CSV?

使用JQ将复杂的JSON (具有数组和不同数据类型)转换为CSV?
EN

Stack Overflow用户
提问于 2016-09-06 00:47:30
回答 3查看 747关注 0票数 0

我有以下JSON数据:

代码语言:javascript
复制
   {
        "status": "ok",
        "ok": true,
        "data": "MFR-L",
        "stores": [{
            "name": "KOLL",
            "lat": 52.93128,
            "lng": 6.962956,
            "dist": 1,
            "x10": 1.129,
            "isOpen": true
        },
        {
            "name": "Takst",
            "lat": 52.9523773,
            "lng": 6.981644,
            "dist": 1.3,
            "x10": 1.809,
            "isOpen": false
        }]
    }

我试图使用JQ将其转换为平面文件,但我总是遇到各种各样的问题,特别是因为文件类型(“无法使用字符串索引boolean”等)。

到目前为止,This post已经帮助我扁平化了数组的内容,如下所示:

代码语言:javascript
复制
jq -r -s 'map(.stores | map({nm: .name, lt: .lat} | [.nm, .lt])) | add [] | @csv

如何将层次结构中较高的内容映射到数组内容?

EN

Stack Overflow用户

发布于 2016-09-08 01:57:35

说明性的JSON可能有几种“扁平化”(例如CSV)的方法,但以下两种方法可能是有意义的。(为了便于阅读,我省略了对@csv的调用。) $ jq '[.data, .stores[][]]' in.json [ "MFR-L", "KOLL", 52.93128, 6.962956, 1, 1.129, true, "Takst", 52.9523773, 6.981644, 1.3, 1.809, false ]

$ jq '.data as $data | .stores[] | [$data, .[]]' in.json [ "MFR-L", "KOLL", 52.93128, 6.962956, 1, 1.129, true ] [ "MFR-L", "Takst", 52.9523773, 6.981644, 1.3, 1.809, false ]

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39334801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档