Golang将json字符串转json对象

时间:2024-01-31 07:11:13

从goframe里面拆一些工具用

 

package main

import (
    "encoding/json"
    "fmt"
)

func main() {
    type Response struct {
        RequestID     string                   `json:"RequestId"`
        SendStatusSet []map[string]interface{} `json:"SendStatusSet"`
    }
    type r struct {
        Response Response `json:"Response"`
    }
    txt := `{
        "Response": {
            "SendStatusSet": [{
                    "SerialNo": "5000:1045710669157053657849499619",
                    "PhoneNumber": "+8618511122233",
                    "Fee": 1,
                    "SessionContext": "test",
                    "Code": "Ok",
                    "Message": "send success",
                    "IsoCode": "CN"
                },
                {
                    "SerialNo": "5000:104571066915705365784949619",
                    "PhoneNumber": "+8618511122266",
                    "Fee": 1,
                    "SessionContext": "test",
                    "Code": "Ok",
                    "Message": "send success",
                    "IsoCode": "CN"
                }
            ],
            "RequestId": "a0aabda6-cf91-4f3e-a81f-9198114a2279"
        }
    }`
    // fmt.Println(txt)
    p := &r{}
    err := json.Unmarshal([]byte(txt), p)
    fmt.Println(err)
    fmt.Println(*p)

    type simple struct {
        Response map[string]interface{}
    }
    zzz := new(simple)
    err = json.Unmarshal([]byte(txt), zzz)
    fmt.Println(err)
    fmt.Println("--------------")
    fmt.Println(*zzz)

    simpleJSON := `{"Name":"Xiao mi 6","ProductID":1,"Number":10000,"Price":2499,"IsOnSale":true}`
    type k struct {
        Name string
    }
    kk := &k{}
    err = json.Unmarshal([]byte(simpleJSON), kk)
    fmt.Println(err)
    fmt.Println(*kk)
}

简单用法