Golang json解析

来源:互联网 发布:网络语666是什么意思 编辑:程序博客网 时间:2024/06/10 06:19

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数, 代码如下:

package main    import (      "encoding/json"      "fmt"      "strings"  )    type GetResponse struct {      Message string `json:message`      Success int    `json:success`      Vild    string `json:vild`  }    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)  }  

说明:当你接收的 json格式文本字段比定义的结构体字段多的时候,也可以解析成功,只是不能访问多出的字段


本文转载于:

   http://blog.csdn.net/impressionw/article/details/69267452

原创粉丝点击