如何解决无法使用 post 请求反序列化枚举值
enum class Foo(val type: String) {
DEFAULT("default"),OTHER("other")
}
@field:QueryValue("foo",defaultValue = "DEFAULT")
@field:Nullable
var foo: Foo = Foo.DEFAULT
这将正确序列化作为 foo: default
或 foo: other
传入的参数
但是,对于发布请求:
@Body
@field:Nullable
var foo: Foo = Foo.DEFAULT
如果我发布了 { "foo": "default" }
或 { "foo": "other" }
的 json 正文
Failed to convert argument [p0] for value [null] due to: Cannot deserialize value of type `Foo` from String \"default\": not one of the values accepted for Enum class: [DEFAULT,OTHER]\n at [Source: UNKNowN; line: -1,column: -1] ...
这里的任何帮助将不胜感激!我不确定这是故意的还是会被视为错误。附带说明一下,是否有可以将字段大写的注释? (因为 foo: DEFAULT
或 foo: OTHER
是有效的)
解决方法
此处的这篇文章详细介绍了如何解决此问题: https://github.com/micronaut-projects/micronaut-core/issues/1830
引用:
import 'package:dcli/dcli.dart';
import 'package:test/test.dart';
expect(
() => copy(from,to),throwsA(predicate((e) =>
e is CopyException &&
e.message == 'The from file ${truepath(from)} does not exists.')));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。