gpt4 book ai didi

json - 在 App Engine 中将 *bytes.Buffer 转换为 json 和 Unmarshal

转载 作者:数据小太阳 更新时间:2023-10-29 03:25:56 24 4
gpt4 key购买 nike

使用 golang appengine 解码 JSON URL GET 请求时遇到问题。

我是 golang 的新手,这可能是一个简单的修复。

无法将 bytes.Buffer 转换为结构。我做得对吗?

或者,我可以只在字符串中查询我想要的字段,但我认为这样做是错误的。

import {
"etc..."
}
.
.
// construct req.URL.String()
.
.
type Result struct {
Type string `json:"type"`
}


func home(w http.ResponseWriter, r *http.Request) {
.
.
.
ctx := appengine.NewContext(r)
client := urlfetch.Client(ctx)
resp, err := client.Get(req.URL.String())

buf := new(bytes.Buffer)
buf.ReadFrom(resp.Body)

fmt.Fprintln(w, buf) // successfully prints the buffer to w and confirms successful JSON request from remote server

var MyResult []Result
json.Unmarshal(buf.Bytes(), &MyResult)

for l := range MyResult {
fmt.Fprintln(w, MyResult[l].Type)
}

// Result: Empty...

// if I hard code the expected JSON string to a []byte array and Unmarshal I get a valid result from MyResult struct

最佳答案

我假设你的 json 有一个对象作为最外层的元素,所以它看起来可能像 {"key": [{"type": "foo"}]}

但是您尝试将其解码为一个数组,因此它应该看起来像 [{"type": "foo"}]

为了确保您必须发布您的 json 示例。

关于json - 在 App Engine 中将 *bytes.Buffer 转换为 json 和 Unmarshal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41867917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com