bvac

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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  阅读(6400)  评论(0编辑  收藏  举报