gjson 模块是 GoFrame 框架中用于处理 JSON 数据的工具包,提供了解析、查询、修改和生成 JSON 数据的功能。以下是 gjson 模块的一些基本介绍:

1. JSON 解析

使用 gjson.LoadContent 函数可以将 JSON 数据解析为 gjson.Json 对象,以便进行后续的操作。
package main

import (
"fmt"
"github.com/gogf/gf/encoding/gjson"
)

func main() {
jsonData := `{"name": "John", "age": 30, "city": "New York"}`

// 解析 JSON 数据
json, err := gjson.LoadContent([]byte(jsonData))
if err != nil {
fmt.Println("JSON 解析失败:", err)
return
}

// 输出解析后的数据
fmt.Println("Name:", json.GetString("name"))
fmt.Println("Age:", json.GetInt("age"))
fmt.Println("City:", json.GetString("city"))
}

2. JSON 查询

使用 Json.Get 方法可以查询 JSON 数据的值,通过链式调用获取嵌套的字段。
package main

import (
"fmt"
"github.com/gogf/gf/encoding/gjson"
)

func main() {
jsonData := `{"name": "John", "age": 30, "city": "New York"}`

// 解析 JSON 数据
json, err := gjson.LoadContent([]byte(jsonData))
if err != nil {
fmt.Println("JSON 解析失败:", err)
return
}

// 查询 JSON 数据
result := json.Get("name")
if result.Exists() {
fmt.Println("Name:", result.String())
} else {
fmt.Println("Name 不存在")
}
}

3. JSON 修改

使用 Json.Set 方法可以修改 JSON 数据的值。
package main

import (
"fmt"
"github.com/gogf/gf/encoding/gjson"
)

func main() {
jsonData := `{"name": "John", "age": 30, "city": "New York"}`

// 解析 JSON 数据
json, err := gjson.LoadContent([]byte(jsonData))
if err != nil {
fmt.Println("JSON 解析失败:", err)
return
}

// 修改 JSON 数据
json.Set("age", 31)

// 输出修改后的 JSON 数据
fmt.Println("修改后的 JSON 数据:", json.String())
}

以上是 gjson 模块的一些基本用法。你可以根据具体的需求使用更多的功能,例如数组操作、深度查询、迭代等。确保在使用前导入 github.com/gogf/gf/encoding/gjson 包。


转载请注明出处:http://www.pingtaimeng.com/article/detail/7788/GoFrame