我正在编写一个客户端服务器 go 应用程序,它使用 yahoo finance api 来获取实时股票价格。我正在使用 jsonrpc 包来连接客户端和服务器。 我无法将嵌套的 map 响应从服务器传递到客户端。这是我来自客户端文件的小片段。 client.go 文件
var (
reply map[string]map[int]float64
)
c := jsonrpc.NewClient(client)
err = c.Call("JSONResponse.GetStockValue", args, &reply)
fmt.Println(reply)
服务器文件如下所示:
func (j *JSONResponse) GetStockValue(args *ClientRequest, reply *map[string]map[int]float64) error {
some piece of code......
nestedMap := make(map[string]map[int]float64)
add some values in nested map .....
fmt.Println(nestedMap)
*reply = nestedMap
return nil
}
这不会向客户端发送任何响应。当我将嵌套 map 更改为像 map[string]int 这样的简单 map 时,它可以正常工作。嵌套 map 在服务器端正确显示,但未在客户端显示。客户端只是继续等待服务器的响应。如果有人可以指导我为什么它不接受嵌套 map 并且对简单 map 工作正常,那将非常有帮助?
谢谢:)
最佳答案
jsonrpc
是 json rpc
因为它使用 json
进行序列化。要将映射编码为 json
,您需要 string
键类型。引用encoding/json
关于go - 如何使用 golang 中的 jsonrpc 包将嵌套映射从服务器发送到客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32817327/