golang如何解析传入的encode形式的数据
时间: 2024-01-21 08:17:51 浏览: 84
如果你是在HTTP请求中传入了编码形式的数据,可以使用Go语言内置的"net/url"包来解析。
假设你收到的数据是类似这样的字符串:
```
name=%E5%BC%A0%E4%B8%89&age=20
```
这个字符串使用了URL编码(也称百分号编码),表示"name"字段的值为"张三","age"字段的值为20。现在需要将它解析成一个Go语言的结构体。
代码如下:
```go
package main
import (
"fmt"
"net/url"
)
type Person struct {
Name string
Age int
}
func main() {
str := "name=%E5%BC%A0%E4%B8%89&age=20"
values, err := url.ParseQuery(str)
if err != nil {
panic(err)
}
person := Person{
Name: values.Get("name"),
}
fmt.Println(person.Name)
age, err := strconv.Atoi(values.Get("age"))
if err != nil {
panic(err)
}
person.Age = age
fmt.Println(person.Age)
}
```
首先使用"url.ParseQuery"函数将字符串解析成一个"url.Values"类型的对象,然后通过调用"Get"方法获取每个字段的值。注意,如果字段的值是一个数字,需要使用"strconv.Atoi"函数将字符串转换成整数。最后,将获取到的值赋给结构体的字段即可。
阅读全文