GO语言 处理未知JSON数据
发布日期:2021-05-14 08:46:26 浏览次数:22 分类:原创文章

本文共 1971 字,大约阅读时间需要 6 分钟。

package mainimport (    "bytes"    "encoding/json"    "fmt"    "io/ioutil"    "log"        "path"    )

func main(){    data := map[string]interface{}{        "FirstName":"Jan",        "Sex":18,    }    stu,_ := json.Marshal(&data)    reader := bytes.NewReader(stu)    fmt.Println(reader)    fmt.Println(stu)    fmt.Println(data)    //content := readFileFrompath("./test.json")//文件方式    //_ = json.Unmarshal(content, &f)    content :=`{"FirstName":"Jan","LastName":"Kersschot","Addresses":[{"Type":"private","City":"Aartselaar","Country":"Belgium"},{"Type":"work","City":"Boom","Country":"Belgium"}],"Remark":"none","acc":{"Type":"private","City":"Aartselaar","Country":"Belgium"}}`//字符串方式    var f interface{}    _ = json.Unmarshal([]byte(content), &f)    m := f.(map[string]interface{})    fmt.Println(f)    /*方式1*/    if m["acc"] !="" {        acc := m["acc"].(map[string]interface{})        fmt.Println(acc["City"])    }    if m["Addresses"] != ""{        Addresses :=m["Addresses"].([]interface{})        fmt.Println(Addresses)        for k,v := range Addresses {            row := v.(map[string]interface{})            fmt.Println(k,v,row["City"],row["Country"],row["Type"])        }    }    /*方式2*/    for k,v := range m{        switch v.(type) {        case []interface{}:            rows :=v.([]interface{})            for sk,sv :=range rows{                son :=sv.(map[string]interface{})                for tk,tv :=range son{                    fmt.Println("k:",k,"----sk:",sk,"----tk:",tk,"----tv:",tv)                }            }        case map[string]interface{}:            rows :=v.(map[string]interface{})            for sk,sv :=range rows {                fmt.Println("k:",k,"----sk:",sk,"----sv:",sv)            }        default:            fmt.Println("k:",k,"----v:",v)        }    }}

/*读取文件内容*/func readFileFrompath(path string) []byte {    content, err := ioutil.ReadFile(path)    if err != nil {        log.Println(err)    }    return content}
上一篇:go语音 post和get请求
下一篇:记录一次liunx 12核32G 之sysctl.conf 配置优化

发表评论

最新留言

不错!
[***.144.177.141]2025年04月13日 10时48分36秒