对于json解析的一点小坑...
1) 返回字段数 等于 定义struct 数 见代码:
package main
import (
"encoding/json"
"fmt"
"strings"
)
type GetResponse struct {
Message string `json:message`
Success int `json:success`
Vild string `json:vild`
Core string `json:core`
}
func main() {
sss := `callback_1491381399454({"message": "success", "success": 1, "vild": "bc48a84c5b0175efb6a59b2036f76cd8", "core": "3"})`
k := strings.Index(sss, "{") // 找第一个‘{’的位置
l := strings.Index(sss, ")") // 找第一个‘)’的位置
if k == -1 || l == -1 { // 是否查找成功
return
}
sbss := sss[k:l]
fmt.Printf("sss = ")
fmt.Println(sss)
fmt.Printf("sbss = ")
fmt.Println(sbss)
var geres GetResponse
err := json.Unmarshal([]byte(sbss), &geres)
if err != nil {
fmt.Println(err.Error())
return
}
fmt.Printf("geres = ")
fmt.Println(geres)
fmt.Printf("geres.Vild = %s", geres.Vild)
}
2)返回字段数 小于 定义struct 数 代码是这样的
结构体定义:
type GetResponse struct {
Message string `json:message`
Success int `json:success`
Vild string `json:vild`
}
要处理的json格式文本是这样的:
sss11 := `callback_1491381399454({"message": "success", "success": 1,