gpt4 book ai didi

arrays - Go 如何反序列化混合类型的 JSON 数组

转载 作者:IT王子 更新时间:2023-10-29 02:10:13 26 4
gpt4 key购买 nike

我正在为 aigaming.com 编写一个 go 客户端,当我发出无效请求时,响应将包含一些错误信息。我想用 struct 捕获此响应,但是,当类型开始混合时,我遇到了麻烦。

错误数据的 JSON 结构如下所示:

{  
"errorMessage":"An error occurred (ValidationException) when calling the Query operation: ExpressionAttributeValues contains invalid value: One or more parameter values were invalid: An AttributeValue may not contain an empty string for key :v0",
"errorType":"ClientError",
"stackTrace":[
[
"/var/task/OfferGame.py",
612,
"lambda_handler",
"game = offerGame.createOffer()"
],
[
"/var/task/OfferGame.py",
586,
"createOffer",
"gameRow = self.findSuitableWaitingGame()"
],
[
"/var/task/OfferGame.py",
503,
"findSuitableWaitingGame",
"Key('GameStyleId_GameStatus').eq(str(self.gameStyleId) + '_' + self.Game.KEY_GAME_STATUS_WAITING)"
]
// There are more items, but I'll omit them for brevity
]
}

捕获这大部分是微不足道的,但是,stackTrace 项会带来麻烦。它是一个数组,数组,混合类型。

到目前为止我得到的最好的结果是这个结构。它实际上并没有给我任何数据(所有元素都是空的),但它返回了正确数量的元素和嵌套元素。

type ErrorResponse struct {
ErrorMessage string `json:"errorMessage"`
ErrorType string `json:"errorType"`
StackTrace [][]interface{} `json:"stackTrace"`
}

有没有办法解析这些混合类型的项目?我可以通过某种方式强制将所有整数元素视为字符串来解决这个问题吗?

更新:这就是我所说的“空”的意思。那里有正确数量的东西,但它们似乎没有被初始化。 enter image description here

最佳答案

您走在正确的轨道上,请继续。每当你需要 StackTrace 的东西时,使用 type assertions并根据实际类型执行代码。请注意类型断言返回 2 个值,检查第二个值以查看假定的类型是否正确。

关于arrays - Go 如何反序列化混合类型的 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48831852/

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