我是新手。
我使用这个包https://github.com/kdar/httprpc来做我的 json-rpc v 1.0 请求(因为 golang 只实现了 2.0)
我有一个问题,我正在调用的这个服务器将“id”作为字符串返回,例如
"id":"345"
代替
"id":345
我发现的唯一方法是使用 string 而不是 uint64 重新定义 clientResponse
type clientResponse struct {
Result *json.RawMessage `json:"result"`
Error interface{} `json:"error"`
Id string `json:"id"`
}
并重新定义完全相同的 DecodeClientResponse 函数以使用我的 clientResponse
而不是 CallJson,我调用(DecodeClientResponse 而不是 gjson.DecodeClientResponse):
httprpc.CallRaw(address, method, ¶ms, &reply, "application/json",
gjson.EncodeClientRequest, DecodeClientResponse)
我觉得这很丑陋,有什么办法可以做得更好吗?
相关分类