Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
json:无法将对象解组为Go类型的值_Json_Go - Fatal编程技术网

json:无法将对象解组为Go类型的值

json:无法将对象解组为Go类型的值,json,go,Json,Go,我无法解码下面的json代码。。。你知道为什么它不起作用吗?另见 JSON与结构字段不匹配:例如JSON中的“district”和字段中的“district” 另外:您的项是切片类型,但JSON是dict值。不要把这个弄混了。切片从阵列解码。这里有一个固定版本: 所需的最大修复是在解组数组时,该属性也需要是结构中的数组/切片 例如: { "things": ["a", "b", "c"] } 将解组成一个: type Item struct { Things []string } 而

我无法解码下面的json代码。。。你知道为什么它不起作用吗?另见


JSON与结构字段不匹配:例如JSON中的“district”和字段中的“district”


另外:您的项是切片类型,但JSON是dict值。不要把这个弄混了。切片从阵列解码。

这里有一个固定版本:

所需的最大修复是在解组数组时,该属性也需要是结构中的数组/切片

例如:

{ "things": ["a", "b", "c"] }
将解组成一个:

type Item struct {
    Things []string
}
而非:


解组时要注意的另一件事是类型完全对齐。当将数字的JSON字符串表示形式解组到
int
float
字段中时,它将失败--
“1”
需要解组到
字符串中,而不是像我们在
ShippingAdditionalCost int

中看到的那样,从Go 1.8开始,根本原因的确定就不是问题;字段名称现在显示在错误消息中:

json: cannot unmarshal object into Go struct field Comment.author of type string

如果你想从AWS的角度寻找答案,特别是当你试图对从DynamoDB
query()
返回的项目使用
UnmarshalListOfMaps()
时,请注意我的一个简单打字错误

假设此函数
解组ListofMaps()
接受…一个映射列表:-),那么它需要解组到一个
列表
中,该列表包含您试图构建的任何
结构,而不仅仅是普通结构本身。这让我很恼火,因为我试图从查询只应返回一行的内容开始

movie:=movie{}
//运行DynamoDB查询
resp,err:=session.Query(输入)//键入QueryInput
如果出错!=零{
log.WithError(err.Error)(“运行DynamoDB查询时出错”)
}
//将所有属性值解组到电影结构中
err=dynamodbattribute.UnmarshalListOfMaps(分别为项目和电影);如果出错!=零{
log.WithError(err.Error)(“将DynamoDB结果封送到电影中时出错”)
返回链接,错误
}
问题在第一行。它应该是
movies:=[]Movie{}
,然后引用
&Movie
也需要更改为
&movies
。如果您保持与上面一样,AWS Go SDK将抛出以下错误:


无法将列表解组为类型(etc)的Go值。

\u版本
未导出(私有;由于大小写较低),因此JSON包无法解组。按照以下答案使用结构标记:@elithrar我已经添加了标记,但仍然不起作用,因为你可以看到结构在同一个主包中,所以小写应该没有任何问题。我不确定你的意思。golang中没有“dic”类型。@mihai he的意思是地图。它与
hash
dict
相同。
type Item struct {
    Things string
}
json: cannot unmarshal object into Go struct field Comment.author of type string