bvac

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理
  23 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

公告

Github地址:https://github.com/bitly/go-simplejson

比较简单,直接看代码

package main

import (
    "fmt"

    simplejson "github.com/bitly/go-simplejson"
)

func main() {
    js, err := simplejson.NewJson([]byte(`{
    "test": {
      "string_array": ["asdf", "ghjk", "zxcv"],
      "array": [1, "2", 3],
      "arraywithsubs": [{"subkeyone": 1},
      {"subkeytwo": 2, "subkeythree": 3}],
      "int": 10,
      "float": 5.150,
      "bignum": 9223372036854775807,
      "string": "simplejson",
      "bool": true
    }
  }`))
    if err != nil {
        panic("json format error")
    }

    //获取某个字段值
    s, err := js.Get("test").Get("string").String()
    if err != nil {
        panic(err)
    }
    fmt.Println(s)

    //检查某个字段是否存在
    _, ok := js.Get("test").CheckGet("string2")
    if ok {
        fmt.Println("存在!")
    } else {
        fmt.Println("不存在")
    }

    //数组的操作
    arr, err := js.Get("test").Get("string_array").StringArray()
    if err != nil {
        panic(err)
    }
    for _, v := range arr {
        fmt.Printf("%s\n", v)
    }

    arr2, err := js.Get("test").Get("array").Array()
    if err != nil {
        panic(err)
    }

    for _, v := range arr2 {
        fmt.Printf("%T:%v\n", v, v)
    }

    arr3 := js.Get("test").Get("arraywithsubs").GetIndex(1).MustMap()
    // if err != nil {
    //  panic(err)
    // }
    fmt.Printf("%v", arr3)

}

输出:

simplejson
不存在
asdf
ghjk
zxcv
json.Number:1
string:2
json.Number:3
map[subkeytwo:2 subkeythree:3]
posted on 2017-01-17 16:37 bvac 阅读(...) 评论(...) 编辑 收藏