在Go中,如何解组包含结构数组的字符串

问题描述

我从API接收的属性之一是一个包含结构数组的字符串,该结构的属性在此转义。

我希望数据(输出对象)是这样的MyStruct的简单数组:

[{“ f”:“ f-val”}]

但是,我得到的输出一个空数组[]。

有人可以帮忙吗?我会很感激。

package main

import "fmt"
import "encoding/json"

type MyStruct struct {
    F string
}

func main() {
    stringResponse := `"[{\"f\":\"f-val\"}]"`
    var data []MyStruct
    json.Unmarshal([]byte(string(stringResponse)),&data)
    fmt.Print(data)
}

解决方法

以下是正确的示例:

package main

import (
   "encoding/json"
   "log"
   "strconv"
)

type MyStruct struct {
    F string
}

func main() {
   s,e := strconv.Unquote(`"[{\"f\":\"f-val\"}]"`)
   if e != nil {
      log.Fatal(e)
   }
   y := []byte(s)
   var data []MyStruct
   json.Unmarshal(y,&data)
   log.Print(data)
}