gin解析字符串 "Data": [ { "Tips": "P01", "Content": { "SystemID": "1", "XCoor": 3.5, "YCoor": 6.0, "Code": "330282000000" } }, { "Tips": "P02", "Content": { "SystemID": "1", "XCoor": 3.5, "YCoor": 6.5, "Code": "330282000000" } } ] }
时间: 2024-01-09 22:04:45 浏览: 55
这个字符串是一个 JSON 格式的数据,可以使用 gin 的 BindJSON() 方法将其解析成结构体。具体代码如下:
```go
type Content struct {
SystemID string `json:"SystemID"`
XCoor float64 `json:"XCoor"`
YCoor float64 `json:"YCoor"`
Code string `json:"Code"`
}
type Data struct {
Tips string `json:"Tips"`
Content Content `json:"Content"`
}
type RequestBody struct {
Data []Data `json:"Data"`
}
func main() {
r := gin.Default()
r.POST("/parse", func(c *gin.Context) {
var reqBody RequestBody
if err := c.BindJSON(&reqBody); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
// 解析成功,可以在这里对数据进行处理
c.JSON(http.StatusOK, gin.H{"message": "success"})
})
r.Run(":8080")
}
```
在上述代码中,我们定义了三个结构体 `Content`、`Data` 和 `RequestBody`,分别对应 JSON 字符串中的三个部分。在路由处理函数中,我们使用 `BindJSON()` 方法将 HTTP 请求中的 JSON 数据解析成 `RequestBody` 结构体,如果解析失败,就返回一个带错误信息的 JSON 响应。如果解析成功,就可以在处理函数中对数据进行进一步的处理。最后,我们使用 `JSON()` 方法将处理结果转换成 JSON 格式的响应返回给客户端。
阅读全文