Jason Go 的 JSON 开发包 Jason

agolangf • 1870 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
Jason 是一个 Go 语言用来处理 JSON 文档的开发包。Jason 的强项是解析 JSON 而不是生成 JSON。 示例代码: <pre class="brush:cpp ;toolbar: true; auto-links: false;">root, err := jason.NewFromReader(res.Body) root.Get(&#34;name&#34;).String() root.Get(&#34;age&#34;).Number() root.Get(&#34;verified&#34;).Boolean() root.Get(&#34;education&#34;).Object() root.Get(&#34;friends&#34;).Array() //读取嵌套内容 root.Get(&#34;person&#34;, &#34;name&#34;).String() root.Get(&#34;person&#34;, &#34;age&#34;).Number() root.Get(&#34;person&#34;, &#34;verified&#34;).Boolean() root.Get(&#34;person&#34;, &#34;education&#34;).Object() root.Get(&#34;person&#34;, &#34;friends&#34;).Array() //判断数值是否存在 root.Has(&#34;person&#34;, &#34;name&#34;) root.Get(&#34;person&#34;, &#34;name&#34;).Exists() //数值校验 root.Get(&#34;name&#34;).IsString() root.Get(&#34;age&#34;).IsNumber() root.Get(&#34;verified&#34;).IsBoolean() root.Get(&#34;education&#34;).IsObject() root.Get(&#34;friends&#34;).IsArray() root.Get(&#34;friends&#34;).IsNull() //循环 for _, friend := range person.Get(&#34;friends&#34;).Array() {   name := friend.Get(&#34;name&#34;).String()   age := friend.Get(&#34;age&#34;).Number() }</pre> 完整例子: <pre class="brush:cpp ;toolbar: true; auto-links: false;">package main import (   &#34;github.com/antonholmquist/jason&#34;   &#34;log&#34; ) func main() {   exampleJSON := `{     &#34;name&#34;: &#34;Walter White&#34;,     &#34;age&#34;: 51,     &#34;children&#34;: [       &#34;junior&#34;,       &#34;holly&#34;     ],     &#34;other&#34;: {       &#34;occupation&#34;: &#34;chemist&#34;,       &#34;years&#34;: 23     }   }`   j, _ := jason.NewFromString(exampleJSON)   log.Println(&#34;name:&#34;, j.Get(&#34;name&#34;).String())   log.Println(&#34;age:&#34;, j.Get(&#34;age&#34;).Number())   log.Println(&#34;occupation:&#34;, j.Get(&#34;other&#34;, &#34;occupation&#34;).String())   log.Println(&#34;years:&#34;, j.Get(&#34;other&#34;, &#34;years&#34;).Number())   for i, child := range j.Get(&#34;children&#34;).Array() {     log.Printf(&#34;child %d: %s&#34;, i, child.String())   } }</pre>
授权协议:
MIT
开发语言:
Google Go 查看源码»
操作系统:
跨平台
1870 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传