Go 的 JSON 开发包 Jason

MIT
Google Go
跨平台
2014-12-03
红薯

Jason 是一个 Go 语言用来处理 JSON 文档的开发包。Jason 的强项是解析 JSON 而不是生成 JSON。

示例代码:

root, err := jason.NewFromReader(res.Body)

root.Get("name").String()
root.Get("age").Number()
root.Get("verified").Boolean()
root.Get("education").Object()
root.Get("friends").Array()

//读取嵌套内容
root.Get("person", "name").String()
root.Get("person", "age").Number()
root.Get("person", "verified").Boolean()
root.Get("person", "education").Object()
root.Get("person", "friends").Array()

//判断数值是否存在
root.Has("person", "name")
root.Get("person", "name").Exists()

//数值校验
root.Get("name").IsString()
root.Get("age").IsNumber()
root.Get("verified").IsBoolean()
root.Get("education").IsObject()
root.Get("friends").IsArray()
root.Get("friends").IsNull()

//循环
for _, friend := range person.Get("friends").Array() {
  name := friend.Get("name").String()
  age := friend.Get("age").Number()
}

完整例子:

package main

import (
  "github.com/antonholmquist/jason"
  "log"
)

func main() {

  exampleJSON := `{
    "name": "Walter White",

    "age": 51,
    "children": [
      "junior",
      "holly"
    ],
    "other": {
      "occupation": "chemist",
      "years": 23
    }
  }j, _ := jason.NewObjectFromBytes([]byte(exampleJSON))  log.Println("name:", j.Get("name").String())
  log.Println("age:", j.Get("age").Number())
  log.Println("occupation:", j.Get("other", "occupation").String())
  log.Println("years:", j.Get("other", "years").Number())
  for i, child := range j.Get("children").Array() {
    log.Printf("child %d: %s", i, child.String())
  }
}
加载中

评论(2)

阿宝1979
阿宝1979
有没有熟悉json的页面前端开发?
tsuibin
tsuibin
有没有擅长生成json的包推荐? Jason

暂无资讯

暂无问答

shell中uniq与sort -u 两种去重的对别

sort -u 和 uniq都能起到删除重复信息的功能,那么他们的区别究竟在哪呢? $ cat test jason jason jason fffff jason 下面分别执行三个命令 1:sort -u test sort -u test fffff jason 2: ...

2016/12/27 00:43
1
0
uniq与sort -u 两种去重的对别

uniq所谓的重复是连续出现的相同记录。而sort -u是全局的。 先sort,再用uniq可以实现sort -u(即sort -u file.txt 等价于sort file.txt | uniq)...

2015/08/03 23:19
162
0
shell统计文本里唯一记录的条数

统计文本里唯一记录的条数,千万别使用uniq -u,使用sort -u # cat test5 jason jason jason bbbbb aaaa zzz jason cccc jason [root@hadoop07 user_tags]# uniq test5 jason bbbbb aaaa zzz ...

2016/08/18 20:58
36
0
安装配置hive

安装配置hive

2015/12/14 21:11
152
0
从程序猿到SAP产品经理,我是如何转型的?

Jerry: 今天的文章来自Jason Xia, 我的老同事,和我一样从2007年进入SAP成都研究院工作至今。这篇文章讲述了Jason是如何从一名SAP资深开发人员转型为SAP产品经理的,希望能对有同样志向的开发...

2018/06/19 15:11
2
0
c/c++常用代码之四爆炸输出,jason(纯干货)

常用代码之四:创建jason,jason转换为字符串,字符串转换回jason,c#反序列化jason字符串的几个代码片段 创建jason,并JSON.stringify()将之转换为字符串。 直接使用var customer={}, 然后直...

07/29 12:12
9
0
SQL SERVER查询区分大小写

例:表test有一行一列数据 id:Aa,执行sql语句 SELECT id FROM test WHERE id = 'aa'; 同样能得出‘Aa’这个结果,只需要在每个条件后面加一句 COLLATE Chinese_PRC_CS_AS即可 例:SELECT id...

2018/03/19 02:35
4
0
从程序猿到SAP产品经理,我是如何转型的?

文章作者:Jason Xia(夏建军) Jerry: 今天的文章来自Jason Xia, 我的老同事,和我一样从2007年进入SAP成都研究院工作至今。这篇文章讲述了Jason是如何从一名SAP资深开发人员转型为SAP产品经...

2018/06/19 15:07
0
0
Yii2 使用 .env 来配置项目环境变量

Yii2 高级版本使用命令 php init 初始化项目之后会提供类似 main.php 和 main-local.php 来区分本地和 线上的开发环境变量配置。 但是基础版没有提供此功能,那么下面我们来使用 phpdotenv ...

2016/11/17 11:27
1K
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部