我有一个由科学仪器创建的层次较深的 JSON对象,因此该文件有点大(1.3MB),并且人们不容易阅读.我想获得JSON对象的密钥列表,直到一定深度.例如,给出这样的输入对象
{
    "acquisition_parameters": {
        "laser": {
            "wavelength": {
                "value": 632,"units": "nm"
            }
        },"date": "02/03/2525","camera": {}
    },"software": {
        "repo": "github.com/username/repo","commit": "a7642f","branch": "develop"
    },"data": [{},{},{}]
}

我想要这样的输出.

{
    "acquisition_parameters": [
        "laser","date","camera"
    ],"software": [
        "repo","commit","branch"
    ]
}

这主要是为了能够枚举JSON对象中的内容.处理JSON对象后,仪器开始分歧:例如,有些可能有一个字段,如.frame.cross_section.stats.fwhm,而其他可能有.sample.species,所以能方便查询命令行上的JSON对象.

解决方法

以下内容应该完全符合您的要求
jq '[(keys - ["data"])[] as $key | { ($key): .[$key] | keys }] | add'

这将给出以下输出,使用上述输入:

{
  "acquisition_parameters": [
    "camera","laser"
  ],"software": [
    "branch","repo"
  ]
}

使用jq列出JSON对象中的键的更多相关文章

  1. xcode – 为什么Jenkins在我的Mac上运行不会连接到本地的git repo?

    我正在尝试使用Jenkins实现自动化构建,用于我的iOS项目.我添加了Git插件,但是一旦我尝试将git的URL放在项目的git配置中,它会在下面的屏幕截图中显示错误.这里Jenkins不能从repo克隆到其工作空间.解决方法在大多数情况下,gitbarerepo有扩展名.git我的意思是(其他)/test1看起来不正确,我认为应该是(其他)/test1.git在我的mac上有同样的错误.

  2. 哪些Xcode项目文件可以从我的git repo中排除?

    我正在开发一个iOS项目,并使用git进行版本控制.我正在与另一位开发人员合作.我应该保留哪些Xcode项目文件在repo中,哪些可以排除,这样不会对其他开发者产生负面影响?这里有一些非代码文件,git告诉我已被修改或添加…

  3. Xcode 4:使用Git repo commit版本在每个构建上更新CFBundleVersion

    我正在将Xcode4与Git结合使用,并希望在每个版本的Info.plist中增加CFBundLeversion.密钥CFBundLeversion的值应更新为我对Git存储库的最后一次提交的数量.我发现thatpython脚本运行良好,但遗憾的是它没有更新我的Xcode项目中的Info.plist–它只是更新了“BUILT_PRODUCTS_DIR”中的Info.plist.有没有人知道如何让Xcode4获取最新提交的版本并将该信息放入项目的Info.plist中?

  4. 如何使用“repo”克隆最小的android源码?

    我可以使用“repo”工具克隆Android源代码.但是,我想要做的是以比没有11GB足迹的更小的方式克隆源代码.它似乎下载了与每个Android设备和每个先前版本相关的内容.我试过想通过检查这样的特定分支来减少这个:然而,最终发生的事情是,我仍然只涉及一个特定的快照(可理解).但有没有办法限制克隆的数量?

  5. android – Gradle自定义存储库和依赖项解析

    我正在开发的项目需要scribe-java和crashlytics库.这两个库都可以从自定义存储库中获得.build.gradle看起来像:使用这样的设置存储库解决方案在构建过程中变得混乱,以至于gradle尝试从不适当的存储库中解析工件:它试图从scribe存储库中检索crashlytics文件.解决方法按声明的顺序搜索存储库,直到找到依赖关系.如果在scribe存储库中搜索crashlytics库,则意味着在crashlytics存储库中找不到它.

  6. 暂停和恢复Android Repo Sync

    reposync解决方法你不能真正暂停一个repo同步,但是如果你使用Ctrl-C中止它然后再运行它,它将有效地从它停止的地方继续.虽然它将从头开始再次通过项目列表,并且可能仍然为已经处理的项目获取一些新数据,但它应该通过这些项目,因为它之前获取的所有数据仍将存在在隐藏的.repo目录中.有关repoinit和reposync工作方式的精彩描述,请参见thisanswer.请注意,您不会立即看到任何已提取的项目,因为在完成克隆.repo/projects中的所有git存储库之前,reposync不会创建并

  7. android – 从AOSP master切换到froyo

    我刚用回购检查了主人.现在我想切换到froyo.如果不再下载一堆东西我怎么能这样做?我不想再次下载一堆东西,我只是希望能够在分支之间自由移动,就像在普通的gitclone中一样.解决方法由于您使用repo下载了所有内容,因此您可以轻松地使用repo在分支之间切换而无需再次下载所有内容:repoinit-bfroyo;回购同步这将只下载切换分支所需的文件,就像使用git在分支之间移动一样.

  8. android – 如何覆盖Robolectric运行时依赖性存储库URL?

    我们试图从我们自己的内部Nexus存储库中使用org.robolectric:robolectric:3.0依赖.问题是Robolectric尝试从公共存储库(asmentionedhere)在运行时加载一些依赖项,并忽略build.gradle中的任何存储库覆盖.由于我们无法从Intranet访问该公共位置,因此在尝试加载该依赖项后,我的测试会超时:[WARNING]Unabletogetres

  9. android – 使用repo命令回滚?

    使用repocommand时如何进行回滚?我在一些文件中做了一些更改,现在我想回滚到使用reposync命令时下载的源代码.我还没有做出改变.解决方法正确的命令是:如果要还原对工作副本所做的更改,请执行以下操作:repoforall-c“gitcheckout.”如果要还原对索引所做的更改,请执行以下操作:repoforall-c“gitreset”如果要还原已提交的更改,请执行以下操作:repoforall-c“gitrevert…”

  10. 在Android Repo项目中切换Git分支

    我有一个关于使用repo切换分支的问题.我知道我可以签出这样的分支:我的理解是,这将检查清单存储库的foo分支,然后检查清单中描述的git项目.我也明白我可以像这样切换分支:我的问题是,我可以切换分支而无需执行repoinit&每次repo同步,这样做的含义是什么?让我举个例子说明一下:我之前尝试过这个,它似乎工作,但它有点奇怪,因为我现在检查了foo清单中的代码,但我当前的清单分支是吧.与清单中描述的不同,在不同的分支上有什么含义?

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部