【发布时间】:2015-12-15 14:40:42
【问题描述】:
在我的应用程序中,我收到了来自客户端的 json。这个 json 可以是任何东西,因为用户定义了键和值。在后端,我将它作为字符串存储在数据存储中。
现在我正在尝试覆盖 MarshalJson / UnmarshalJson 函数,以便我从客户端发送/接收的不是字符串,而是 json。
我不知道如何在 go 中将字符串转换为 json。
我的结构
type ContextData string
type Iot struct {
Id IotId `json:"id,string" datastore:"-" goon:"id"`
Name string `json:"name"`
Context ContextData `json:"context" datastore:",noindex"` }
接收数据示例
{ 'id' : '',
'name' '',
'context': {
'key1': value1,
'key2': value2 }}
我想如何将此上下文字段作为 noindex 字符串存储在数据存储中 '{'key1':value1, 'key2':value2}'
我要发送的数据示例
{ 'id' : '',
'name' '',
'context': {
'key1': value1,
'key2': value2 }}
【问题讨论】:
-
如果数据已经是json,并且已经在一个字符串中,你要编组或解组什么?
-
现在前端将 json 转换为字符串,然后我在后端接收它。我想改变它,以便前面总是发送一个 json,而在后面我将它作为字符串保存在数据存储中
-
请提供一个您正在尝试做的示例。 JSON 是一个字符串,直到你解组它,所以我不明白你所说的“发送一个 json”是什么意思。
-
我想我不明白你想做什么。但是,如果您正在寻找一种传递本地对象的方法,请尝试 RPC。对我来说,运输一个可以轻松转换为字符串的有效载荷会遇到这么多麻烦,这对我来说毫无意义。
-
@JimB 我不确定我正在尝试做的事情是否毫无价值或正确,但我在我的问题中添加了更多细节
标签: google-app-engine go google-cloud-datastore