【发布时间】:2018-04-19 06:39:51
【问题描述】:
我使用“github.com/olivere/elastic”从 Elasticsearch 返回数据。那种作品,当我将它添加到我的结构并将它串起来时,就像这样,
data := Api {
Total: myTotal,
Data: string(result),
}
c.JSON(http.StatusOK, totalData)
api 是这样的结构,
type Api struct {
Total interface{}
Data interface{}
}
这会根据请求返回数据,从 1 到任意数量的结果。加载到数据接口中的结果是如何不转义的,例如
"Data":"{\"CID\":\"XXXXXXXXXX\",\"Link\":\"XXXXXXXXX\",
所以我尝试在将数据添加到 api 结构之前对其进行解组。
var p DataApi
err := json.Unmarshal(result, &p)
if err != nil {
panic(err)
}
totalData := Api {
Total: myTotal,
Data: p,
}
c.JSON(http.StatusOK, totalData)
这种工作正常,以正确的方式返回数据,但仅在加载一个结果时。当请求 2 个或更多结果时,我从 unmarshal panic 中得到这个错误
invalid character '{' after top-level value
我已经尝试过和谷歌搜索但找不到解决方案?我不确定我做错了什么? DataApi 是一组嵌套的结构,我不确定是否应该因此而存在什么?
这是在 Gin 框架内运行的。
谢谢。
编辑
所以当我在字符串(结果)上使用fmt.Println 时,我可以在屏幕上打印任意数量的结果。如何将它添加到 API 结构中,然后我需要将结构转换为 JSON 数据。有没有办法在 JSON 转换的 API 结构上附加这个字符串数据?
【问题讨论】:
-
您能否举例说明
string(result)包含 1 个和多个结果时的样子? -
应该是这样,{"CID":"XXXXXXXXXX","Link":"XXXXXXXXX",}等
标签: elasticsearch go go-gin