摘要:
golang 解析json有很多种方法 go自己的json```go package main import ( “fmt” “en...
golang 解析json有很多种方法 go自己的json
package main
import (
"fmt"
"encoding/json"
"time"
)
func main() {
type FruitBasket struct {
Name string
Fruit []string
Id int64 `json:"id"`// 对应的json key
Created time.Time
}
jsonData := []byte(`
{
"Name": "Standard",
"Fruit": [
"Apple",
"Banana",
"Orange"
],
"id": 1,
"Created": "2021-01-26"
}`)
var basket FruitBasket
err := json.Unmarshal(jsonData, &basket)
if err != nil {
fmt.Println(err)
}
fmt.Println(basket.Name, basket.Fruit, basket.Id)
fmt.Println(basket.Created)
}
我比较习惯了使用 gjson
$ go get -u github.com/tidwall/gjson 安装
JO := gjson.Parse(`{
"Name": "Standard",
"Fruit": [
"Apple",
"Banana",
"Orange"
],
"id": 1,
"Created": "2021-01-26"
}`)
fmt.Println(JO.Get("Created").String())
//结果集的方法
result.Exists() bool
result.Value() interface{}
result.Int() int64
result.Uint() uint64
result.Float() float64
result.String() string
result.Bool() bool
result.Time() time.Time
result.Array() []gjson.Result
result.Map() map[string]gjson.Result
result.Get(path string)
Result result.ForEach(iterator func(key, value Result) bool)
result.Less(token Result, caseSensitive bool) bool
//类型关系
boolean >> bool
number >> float64
string >> string
null >> nil
array >> []interface{}
object >> map[string]interface{}
发表评论