V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
crossoverJie
V2EX  ›  分享创造

写了一个 JSON 解析库,可以方便的获取数据甚至还能做四则运算。

  •  
  •   crossoverJie ·
    crossoverJie · 2022-07-04 12:32:15 +08:00 · 1491 次点击
    这是一个创建于 857 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用法:

    str := `{"people":{"name":{"first":"bob"}}}`
    first := gjson.Get(str, "people.name.first")
    assert.Equal(t, first.String(), "bob")
    
    str := `{"people":[{"bob":{"age":10}},{"alice":{"age":10}}]}`
    age := gjson.GetWithArithmetic(str, "people[0].bob.age + people[1].alice.age")
    assert.Equal(t, age.Int(), 20)
    

    源码地址: https://github.com/crossoverJie/gjson

    取名确实是老大难了,索性和 gjson 一样了,也借鉴了它的 api 设计,但是简化了需多功能,只保留最常用的查询;同时代码要更容易阅读一些。

    这个四则运算功能确实也比较小众,但聊胜于无嘛,当真需要临时计算一个复杂 JSON 中的两个字段值时,也能多一个选项。

    感兴趣的可以试用一下。

    rekulas
        1
    rekulas  
       2022-07-04 16:15:22 +08:00   ❤️ 1
    取名。。。不建议跟已有知名库重名,对宣传很不利,哪怕随便起个 xjson ,fjson 也比 gjson 好吧
    json 解析大家都喜欢老牌稳定库避免出 bug ,建议加点独特优势增加竞争力,比如 get/set 一体 json 库,就比 gjson 好用了 😎
    crossoverJie
        2
    crossoverJie  
    OP
       2022-07-04 16:17:38 +08:00
    @rekulas #1 👍 xjson 可以,当时确实不知道取啥名了。
    uselessVisitor
        3
    uselessVisitor  
       2022-07-08 21:32:16 +08:00
    @crossoverJie gjson-lite
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1150 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:47 · PVG 02:47 · LAX 10:47 · JFK 13:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.