首页 > 系统相关 >shell 使用jq解析json字符串数组

shell 使用jq解析json字符串数组

时间:2022-11-28 15:12:28浏览次数:78  
标签:shell name jq echo json foo txt

echo json.txt | jq '.' 输出整个json字符串

echo json.txt | jq '.[0]' 取出数组中第一个object

echo json.txt | jq '.[0].name' 取出数组第一个object中键为name的值

root@JDBox_LuBan:~# cat json.txt | jq '.[0].name' 
"Google"

json.txt:

[
  {
    "name": "Google",
    "location": {
      "street": "1600 Amphitheatre Parkway",
      "city": "Mountain View",
      "state": "California",
      "country": "US"
    },
    "employees": [
      {
        "name": "Michael",
        "division": "Engineering"
      },
      {
        "name": "Laura",
        "division": "HR"
      },
      {
        "name": "Elise",
        "division": "Marketing"
      }
    ]
  }
]

1.嵌套解析:

# cat json.txt | jq '.[0].location.city'
"Mountain View"

2.获取JSON中的所有键:

# cat json.txt | jq '.[0]|keys'
[
  "employees",
  "location",
  "name"
]

 3.获取键值对的个数,或者数组长度:

cat json.txt | jq '.[0].employees|length'
3
# 取键foo的值:
echo '{"foo": 42, "bar": "less interesting data"}' | jq '.foo'
42
# 获取json所有键:
echo '{"foo": 42, "bar": "less interesting data"}' | jq 'keys'
[
"bar",
"foo"
]
# has判断是否存在某个key
echo '{"foo": 42, "bar": "less interesting data"}' | jq 'has("foo")' 
true
# 获取键值对的个数,或者数组长度
echo '{"foo": 42, "bar": "less interesting data"}' | jq 'length' 
2

参考:https://blog.csdn.net/yanbingquan/article/details/50770911

标签:shell,name,jq,echo,json,foo,txt
From: https://www.cnblogs.com/v5captain/p/16932237.html

相关文章

  • JsonCpp serialize vector which contains class
    //Book.cpp#include<iostream>usingnamespacestd;classBook{public:intIdx;char*ISBN;char*Name;char*Abstract;char*Content......
  • EF Core | Passing navigation properties in JSON body to API controller as POST r
    EFCore|PassingnavigationpropertiesinJSONbodytoAPIcontrollerasPOSTrequestHere'stheofficialdocsonavoidinggraphcyclesinJSON:learn.micros......
  • Shell 把日志记录按天切割到不同的文件【转】
    #!/bin/bash#文件夹不存在,则创建,参数从$1开始createFolder(){if[!-d$1];thenmkdir-p$1#创建文件夹:-p递归创建文件夹chmod-R777......
  • 直播app源码,HTML + jQuery 实现轮播图
    直播app源码,HTML+jQuery实现轮播图一:HTML页面部分1、首先创建可视窗口添加6张图片,添加CSS样式 2、添加左右切换按钮,设置样式 3、添加图片导航器,设置样式,添加悬......
  • GIS---WKT、WKB与GeoJSON
    WKT与WKB是OGC中的简单服务标准SFS(SimpleFeaturesInterfaceStandard),但是GeoJSON并不是OGC中的标准。​WKT(Well-knowntext)是开放地理空间联盟OGC(OpenGISConsortium......
  • Shell入门
    一、Shell是什么Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。......
  • ApiJSON简单使用示例
    1{2"[]":{3"query":2,4"User":{5"@column":"id,name"6},7"count":5,8"@order":......
  • 第五章:jQuery基础
    jQuery简介"""jQuery内部封装了原生的js代码(还额外的添加了很多的功能)能够让你通过书写更少的代码完成js操作类似于Python的模块在前端模块不叫模块,叫“类库”兼......
  • jquery009-js执行的先后顺序
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><bodystyle="width:980px;margin:0auto"><h1>#一,当页面框架......
  • jquery011-自定义函数-执行
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><bodystyle="width:980px;margin:0auto"><h1>例子1</h1><......