• linux 操作 json文件


    Linux 下 操作 json 文件神器 jq

     jq

    yum install jq -y

    查看一个 file.json 格式文件
    # jq . file.json

    JSON
    (JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。
    简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

    JSON 语法格式:
    JSON的结构基于这两点: "键/值对" ,
    在不同的语言中,它可以被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),键列表(keyed list)等 .
    值的有序列表 多数语言中被理解为数组(array)

     json 基础结构说明

    JSON的基础结构说明:
    对象是属性、值的集合。一个对象开始与”{” ,结束于”}”。每一个属性名和值间用”:”分隔。每个属性间用”,”分隔。 值可以是字符串,数字,逻辑值,数组,对象,
    null。 数字:整数或浮点数 字符串:在双引号中 逻辑符:true和false 数组:在方括号中 对象:在花括号中 null: 代表空

    JSON 键/值对

    JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值:
    {"firstName": "Json"}
    这很容易理解,等价于这条 JavaScript 语句:
    {firstName : "Json"}

    JSON 与 JS 对象的关系
    很多人搞不清楚 JSON 和 Js 对象的关系,甚至连谁是谁都不清楚。其实,可以这么理解:

    JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。
    如:
    var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的
    var json = '{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串,本质是一个字符串
    
    JSON 和 JS 对象互转 要实现从对象转换为 JSON 字符串,使用 JSON.stringify() 方法: var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}'
    要实现从 JSON 转换为对象,使用 JSON.parse() 方法: var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}

    jq 命令允许直接在命令行下对JSON进行操作,包括分片、过滤、转换。

    jq 命令的格式:
    
    jq [options] filter [files]
    **options:**
    --version:输出jq的版本信息并退出
    --slurp/-s:读入整个输入流到一个数组。
    --raw-input/-R:不作为JSON解析,将每一行的文本作为字符串输出到屏幕。
    --null-input/ -n:不读取任何输入,过滤器运行使用null作为输入。一般用作从头构建JSON数据。
    --compact-output /-c:使输出紧凑,而不是把每一个JSON对象输出在一行。
    --colour-output / -C:打开颜色显示
    --monochrome-output / -M:关闭颜色显示
    
    --ascii-output /-a:指定输出格式为ASCII
    
    -raw-output /-r :如果过滤的结果是一个字符串,那么直接写到标准输出(去掉字符串的引号)
    
    **filter:**
    . : 默认输出
    .foo: 输出指定属性,foo代表属性。
    .[foo] :输出指定数组元素。foo代表数组下标。
    .[]:输出指定数组中全部元素
    , :指定多个属性作为过滤条件时,用逗号分隔
    | : 将指定的数组元素中的某个属性作为过滤条件
    
    **files:**
    JOSN格式文件。
  • 相关阅读:
    Maven: 每次更新Maven Project ,JAVA 版本都变为1.5 规格严格
    OpenFeign 出现The bean xxx.FeignClientSpecification could not be registered问题解决 规格严格
    富文本编辑保存的时候报错Data truncation: Data too long for column 'content' at row 1 规格严格
    cPickle.so:: PyUnicodeUCS2_DecodeUTF8 规格严格
    Poitl Documentation 规格严格
    maven指定编译版本 规格严格
    SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型
    SQL Server 2008空间数据应用系列四:基础空间对象与函数应用
    SQL Server 2008空间数据应用系列二:空间索引(Spatial Index)基础
    SQL Server 2008空间数据应用系列三:SQL Server 2008空间数据类型
  • 原文地址:https://www.cnblogs.com/sharesdk/p/9467447.html
Copyright © 2020-2023  润新知