golang - 利用 gjson 处理 json 数据方法

本文介绍了在 Golang 中如何使用 gjson 库处理 JSON 数据,包括其特点、获取方法以及简单的语法说明。通过示例展示了如何获取 JSON 对象的键值和列表结构,强调虽然 gjson 提供了简洁的语法,但可能增加代码维护难度,因此需要配合详细的开发文档。
摘要由CSDN通过智能技术生成

目的

1. 利用 golang 调用 ceph 存储     
2. 获取 ceph json 数据并进行处理  
3. 利用 gjson 包对 json 数据进行处理    

参考

golang ceph 连接方法

json 处理

gjson

特点

语法简单
功能多样化
可以减少代码量

缺点

无法从代码中得知 json 结构
增加了代码维护难度
需要有完善的开发文档才行

获取

参考 gjson github

获取方法

go get -u github.com/tidwall/gjson

参考目录结构

.
├── client
├── models
└── vendor
    └── github.com
        ├── ceph
        │   └── go-ceph
        │       ├── cephfs
        │       ├── rados
        │       └── rbd
        └── tidwall            <- go get 下载的 gjson 目录结构
            ├── gjson
            └── match

json 数据参考

参考 golang ceph 连接方法 获取的 json 数据如下

{
    "name": "ns-storage-020101",
    "rank": 1,
    "state": "peon",
    "election_epoch": 52,
    "quorum": [
        0,
        1,
        2
    ],
    "features": {
        "required_con": "153140804152475648",
        "required_mon": [
            "kraken",
            "luminous"
        ],
        "quorum_con": "2305244844532236283",
        "quorum_mon": [
            "kraken",
            "luminous"
        ]
    },
    "outside_quorum": [],
    "extra_probe_peers": [],
    "sync_provider": [],
    "monmap": {
        "epoch": 2,
        "fsid": "8085cc2f-d5ec-48d2-b614-xxxxxxxxxxx",
        "modified": "2018-12-07 20:44:56.784568",
        "created": "2018-12-07 20:44:56.784568",
        "features": {
            "persistent&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Terry_Tsang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值