Я довольно новичок.json-rpc in golang, id as string
Я использую этот пакет https://github.com/kdar/httprpc сделать мой JSON-RPC v 1.0 запросов (как golang реализует только 2,0)
У меня есть проблема, этот сервер я звоню вернуть «идентификатор» в виде строки, как
"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, я называю (DecodeClientResponse вместо gjson.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