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