这是代码示例:
func GetValue(c echo.Context) error {
//other implementation details
value, err := service.GetValue()
if err != nil {
return c.JSON(http.StatusBadRequest, errorresponse.Error(4003, err))
}
//if I set same value here, it works as expected
//value.Value = []int8{48, 48, 48, 54, 54, 49, 56, 54, 32, 32, 32, 32, 32, 32, 32}
return c.JSON(http.StatusOK, value)
}
//this is type service.GetValue() returns
type ValueGetResponse struct {
Value interface{}
ValueType string
}
如果我使用来自service.GetValue()
方法的值,API 会给出如下响应。它将它转换为某种我不知道的字符串。当我检查value.Value
属性时,reflect.TypeOf(value.Value)
说它是[]int8
as 类型。VSCode 调试器也批准它。
请求中使用的对象:
响应:
{
"Value": "MDAwNjYxODYgICAgICAg",
"ValueType": "[]uint8"
}
如果我手动设置期望值,它会按预期工作,我不明白为什么第一个不是。
value.Value = []int8{48, 48, 48, 54, 54, 49, 56, 54, 32, 32, 32, 32, 32, 32, 32}
请求中使用的对象:
响应:
{
"Value": [
48,
48,
48,
54,
54,
49,
56,
54,
32,
32,
32,
32,
32,
32,
32,
32
],
"ValueType": "[]uint8"
}