使用条带库在 Go 中解组数据
Unmarshal data in Go using stripe library
刚开始使用 Go 进行黑客攻击。
我正在尝试使用 Stripe 库。有一种类型 Charge
我正在尝试使用他们的自定义 UnmarshalJSON
调用,但我传递的参数似乎都不起作用。这是怎么回事?
var charge, err = sc.Charges.Get(id, nil)
if err != nil {
log.Fatal(err)
}
thing := charge.UnmarshalJSON([]byte(charge))
函数如下:https://github.com/stripe/stripe-go/blob/master/charge.go#L162
我收到:
./hello.go:48: cannot convert charge (type *stripe.Charge) to type []byte
尚未找到满足此功能的传递参数。任何帮助表示感谢。
JSON 到 Charge
Charge.UnmarshalJSON()
需要一个字节片 ([]byte
)。 Charge
是一种结构类型,您不能将它的值(也不是指向它的指针)转换为 []byte
。这就是错误消息告诉您的内容。
UnmarshalJSON()
方法期望的字节片是 JSON 描述 Charge
的文本,或者查看 UnmarshalJSON()
的实现,它也接受单个 JSON 文本作为 Charge
ID。
所以这应该有效:
var charge, err = sc.Charges.Get(id, nil)
if err != nil {
log.Fatal(err)
}
err := charge.UnmarshalJSON([]byte(`"123"`))
或 JSON 中表示的 Charge
结构(不完整):
var charge, err = sc.Charges.Get(id, nil)
if err != nil {
log.Fatal(err)
}
s := `{"id":"123","amount":2000,"description":"testing"}`
err := charge.UnmarshalJSON([]byte(s))
fmt.Printf("%+v", thing)
输出应包含根据 JSON 文本正确设置的这些字段,以及其他具有零值的字段:
{Amount:2000 Desc:testing ID:123}
Charge
到 JSON
要打印 Charge
值的格式良好的 JSON 表示,请使用 json.Marshal()
:
out, err := json.Marshal(c)
if err != nil {
panic(err) // handle error
}
fmt.Println(string(out))
out, err := json.MarshalIndent(c, "", " ")
if err != nil {
panic(err) // handle error
}
fmt.Println(string(out))
示例输出(剥离):
{
"amount": 2000,
"description": "testing",
"id": "123",
}
刚开始使用 Go 进行黑客攻击。
我正在尝试使用 Stripe 库。有一种类型 Charge
我正在尝试使用他们的自定义 UnmarshalJSON
调用,但我传递的参数似乎都不起作用。这是怎么回事?
var charge, err = sc.Charges.Get(id, nil)
if err != nil {
log.Fatal(err)
}
thing := charge.UnmarshalJSON([]byte(charge))
函数如下:https://github.com/stripe/stripe-go/blob/master/charge.go#L162
我收到:
./hello.go:48: cannot convert charge (type *stripe.Charge) to type []byte
尚未找到满足此功能的传递参数。任何帮助表示感谢。
JSON 到 Charge
Charge.UnmarshalJSON()
需要一个字节片 ([]byte
)。 Charge
是一种结构类型,您不能将它的值(也不是指向它的指针)转换为 []byte
。这就是错误消息告诉您的内容。
UnmarshalJSON()
方法期望的字节片是 JSON 描述 Charge
的文本,或者查看 UnmarshalJSON()
的实现,它也接受单个 JSON 文本作为 Charge
ID。
所以这应该有效:
var charge, err = sc.Charges.Get(id, nil)
if err != nil {
log.Fatal(err)
}
err := charge.UnmarshalJSON([]byte(`"123"`))
或 JSON 中表示的 Charge
结构(不完整):
var charge, err = sc.Charges.Get(id, nil)
if err != nil {
log.Fatal(err)
}
s := `{"id":"123","amount":2000,"description":"testing"}`
err := charge.UnmarshalJSON([]byte(s))
fmt.Printf("%+v", thing)
输出应包含根据 JSON 文本正确设置的这些字段,以及其他具有零值的字段:
{Amount:2000 Desc:testing ID:123}
Charge
到 JSON
要打印 Charge
值的格式良好的 JSON 表示,请使用 json.Marshal()
:
out, err := json.Marshal(c)
if err != nil {
panic(err) // handle error
}
fmt.Println(string(out))
out, err := json.MarshalIndent(c, "", " ")
if err != nil {
panic(err) // handle error
}
fmt.Println(string(out))
示例输出(剥离):
{
"amount": 2000,
"description": "testing",
"id": "123",
}