linux json文件怎么打开,使用Bash处理JSON文件

ac70e607ce11f160ba6e0b06f0598185.gif

前言

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本文提供一个真实的测试用例需求,设计逻辑类似Makefile,我以Bash处理JSON为例,Coding水平有限,请各位多多包涵哈,欢迎大家一起学习和挑战各种不同的语言来实现。

巧用jq处理JSON数据

Test Case

In data pipeline system and configuration management systems, it’s very common that you need execute a bunch of jobs which has dependencies with each other.

Write a program pipeline_runner to execute a list of shell scripts. The definition of those scripts and their dependencies are described in a JSON file. The program only takes in one argument which is the file path of JSON file that defines the jobs.

For example,

// jobs.json

{

"log0_compressed" : {

"commands": "curl http://websrv0/logs/access.log.gz > access0.log.gz",

"input": [],

"output": "access0.log.gz"

},

"log0" : {

"commands": "gunzip access0.log.gz",

"input": ["access0.log.gz"],

"output": "access0.log"

},

"log1_compressed": {

"commands": "curl http://websrv1/logs/access.log.gz > access1.log.gz&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该工具为个人整理修改的常用工具类,maven结构,Java语言编写详细依赖间pom文件,如有冲突自行修改, 包括条形码操作工具、二维码操作、图片验证码工具、动态密码工具、雪花算法id工具、签名工具、poi导出、json转换、文件操作、分页、日期处理、jdbc、大数运算及格式化、gzip压缩、http 结构说明如下: datasourceconfig:多数据源使用配置包 对数据源配置.txt:配置说明文件 function:功能代码及工具类 delayqueue:java自带延迟对了使用包 DelayMsg:延迟消息实体 DelayMsgHandler:延迟消息处理工具 paramvalid:空参检查包 CommonUtil:空参检查工具类 ParamNotNull:参数注解 RegistParam:参数实体 RequestMsg:公共参数实体 pdf:pdf导出工具包,包含4个导出工具类,具体使用根据导出结果确定 websocket:服务端websockt配置包,比较简单,具体使用需自行扩充 ActiveMqUtil:ActiveMq操作工具类 BarCodeUtil:条形码操作工具类,包括生成和读取 CorsConfig:服务端防止跨域请求公共设置 DateUtil:时间处理工具类 DBConnection:jdbc工具类 FileOperater:文件处理工具类 包括 读取文本文件,写出文本文件, 大文件切分,文件下载,文件文件夹比较,文件文件夹遍历筛选 ...... HttpClientCard:http工具类 HttpUtil:http工具类 Identification:id生成工具类,包括 UUID luhn算法id(适用于有序的流水号码) ImgUtil:图片相似度计算工具 ItvJsonUtil:基于fastjsonjson工具类 JsonUtility:基于jackjson的接送工具类 MailUtil:邮件工具类,包括发送纯文本邮件,带(1个/多个)附件的邮件, 群发邮件 NumberUtil:数字操作工具 包括精准数字运算,数据格式化 PageUtil:分页工具类, POIUtil:poi工具类,excel导出 QrCodeUtil:二维码操作工具, 包括生成和读取 ShellUtil:shell命令操作工具,包括linux登陆,命令执行...... 较为简单,具体需要自行扩充 SignUtil:签名工具,包括MD5 位运算 AES BASE64 SnowflakeIdWorker:ID生成工具 雪花算法 SocketUtil:socket测试工具 TotpAuthUtil:动态密码工具 包括生成和校验 VerifyCodeUtil:图片验证码生成工具 ZipUtils:gzip压缩工具
Linux 系统中,使用 `json_object.h` 需要安装 `libjson-c` 库,并在编译时链接该库。下面是使用 `json_object.h` 的简单示例: ```c #include <stdio.h> #include <json-c/json.h> int main() { // 定义 JSON 字符串 const char *json_str = "{\"name\":\"Alice\",\"age\":18}"; // 解析 JSON 字符串为 JSON 对象 struct json_object *obj = json_tokener_parse(json_str); // 获取 JSON 对象中的值 struct json_object *name_obj = json_object_object_get(obj, "name"); struct json_object *age_obj = json_object_object_get(obj, "age"); // 输出 JSON 对象中的值 printf("name: %s\n", json_object_get_string(name_obj)); printf("age: %d\n", json_object_get_int(age_obj)); // 释放内存 json_object_put(obj); return 0; } ``` 上述代码中,首先定义了一个 JSON 字符串 `json_str`,然后调用 `json_tokener_parse` 函数将该字符串解析为 JSON 对象 `obj`。接着,使用 `json_object_object_get` 函数获取 JSON 对象中的值,并使用 `json_object_get_string` 和 `json_object_get_int` 函数分别获取字符串和整数类型的值。最后,使用 `json_object_put` 函数释放内存。 编译时需要链接 `libjson-c` 库,可以使用以下命令进行编译: ```bash gcc -o test test.c -ljson-c ``` 其中,`test` 表示编译生成的可执行文件名,`test.c` 表示源代码文件名,`-ljson-c` 表示链接 `libjson-c` 库。执行编译后,即可在命令行中运行生成的可执行文件,输出结果如下: ``` name: Alice age: 18 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值