我是相當新的去。golang中的json-rpc,字符串的id
我用這個包https://github.com/kdar/httprpc做我的JSON-RPC 1.0版的要求(如golang只實現2.0)
我有一個問題,這個服務器我打電話返回「ID」的字符串,如
"id":"345"
,而不是
"id":345
我發現的唯一辦法就是使用字符串來重新定義clientResponse而不是UINT64
type clientResponse struct {
Result *json.RawMessage `json:"result"`
Error interface{} `json:"error"`
Id string `json:"id"`
}
,並重新定義exacte相同DecodeClientResponse功能用我clientResponse
和替代CallJson,我打電話(的gjson.DecodeClientResponse DecodeClientResponse代替):
httprpc.CallRaw(address, method, ¶ms, &reply, "application/json",
gjson.EncodeClientRequest, DecodeClientResponse)
我覺得這是很醜陋,有沒有辦法做得更好?
感謝
感謝,併爲可能解碼int和字符串,就像int不起作用一樣,試試字符串。或者我應該這樣做:StringId string'json:「id」'和IntId uint64'json:「id」'? – vieux
是的,這是可能的。我不知道'httprpc'包足以知道它如何處理'id'值。但是我編輯了答案,以顯示如何使用'interface {}'而不是字符串。 – ANisus