Json解析,一个奇怪的现象

package main

import (
    "encoding/json"
    "fmt"
)

const (
    a = `{"Test": {"2": {"Num": "08","Check": "1"},"1": {"Num": 11,"Check": "1"}}}`
)

解析的结构体如下:

type BBBB struct {
    Num   interface{} `json:"Num"`
    Check string      `json:"Check"`
}

type AAAA struct {
    Test map[string]BBBB
}

下面是解析方法:

    var err error
    var result AAAA
    err = json.Unmarshal(bytes, &result)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(result)

那么问题来了:

bytes := []byte(a)时,可以正常解析;

bytes,_ := json.Marshal(a)时,就解析不出……

共 1 个回复


jimmykuu

Marshal的应该是一个struct或其他类型。

# 0