在 GoFrame 中,gjson 模块提供了对 JSON 数据的处理,包括解析、查询和修改等功能。以下是一些 gjson 模块的基本用法:

1. 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 查询
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 修改
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 模块的一些基本用法,你可以根据具体的需求使用更多的功能,例如数组操作、深度查询、迭代等。在使用时,可以参考 GoFrame 框架的文档以了解更多详细信息。


转载请注明出处:http://www.zyzy.cn/article/detail/7787/GoFrame