json.封送返回奇怪值

我想要来自sql行的json数组。当我尝试在扫描每行后对每个结构进行封送时,它返回奇怪的值,如[123 34 105 100 34 ..]


type Org struct {

    Id   int    `json:"id"`

    Name string `json:"name"`

}


res, err := db.Query("select id,name from organization")

if err != nil {

    // fmt.Print("err in query")

    panic(err)

}

// var orgArray []Org

defer res.Close()

for res.Next() {


    var org Org

    fmt.Println(&org.Id, &org.Name, "PRINT ADDRESS BEFORE SCAN")

    

    //  0xc0001c0648 0xc0001c0650 PRINT ADDRESS BEFORE SCAN


    err = res.Scan(&org.Id, &org.Name)

    fmt.Println(org.Id, org.Name, org, "PRINT VALUES AFTER SCAN")

    

    // 1535 TestOrg {1535 TestOrg} PRINT VALUES AFTER SCAN


    b, err := json.Marshal(org)


    if err != nil {

        panic(err)

    }

    fmt.Println(b)

    //[123 34 105 100 34 58 49 53 51 55 44 34 110 97 109 101 34 58 34 98 114 97 110 100 32 69 104 71 74 89 34 125]

}

这有什么问题?


蝴蝶刀刀
浏览 68回答 2
2回答

皈依舞

json.Marshal响应是字节数组,打印前转换为字符串package mainimport (    "encoding/json"    "fmt")type Abc struct {    A string `json:"a"`    B string `json:"b"`}func main() {    d := Abc{A: "aaa", B: "bbbb"}    a, _ := json.Marshal(d)    fmt.Println(string(a))}共享编辑跟随json.Marshal响应是字节数组,打印前转换为字符串package mainimport (    "encoding/json"    "fmt")type Abc struct {    A string `json:"a"`    B string `json:"b"`}func main() {    d := Abc{A: "aaa", B: "bbbb"}    a, _ := json.Marshal(d)    fmt.Println(string(a))}

紫衣仙女

json.封送返回一个字节数组 - 。[]byte打印出来就是这样。您看到的整数(字节值)数组是字节数组在 Go 中打印出来的方式。Printlnb用于打印字符串。等。string(b)fmt.Println(string(b))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go