我有以下数据类
<ImageBrush ImageSource="{Binding Source={x:Static vg:GlobalVariables.Logo}}" .../>
我想编写一个通用的Kotlin函数,该函数可以将json反序列化为各种data class MyResponse<T>(val header: String,
val body: T)
或MyResponse<SimpleBody>
MyResponse<ComplexBody>
它无法通过此错误消息进行编译
class JsonSerialiser {
val mapper = jacksonObjectMapper()
fun <T> fromJson(message: String, classz: Class<T>): T {
return mapper.readValue(message, classz)
}
}
val response: MyResponse<SimpleBody> = jsonSerialiser.fromJson("""{"header":"myheader", "body":{"simpleBody":{"name": "A"}}}""", MyResponse::class.java)
data class SimpleBody(val name: String)
任何人都知道我如何使它工作?我可以使用MyResponse <*>然后进行投射,但我不认为这是正确的方法。
感谢与问候 锡
答案 0 :(得分:0)
您不需要这个,只需使用val response: MyResponse<SimpleBody> = jacksonObjectMapper().readValue("""{"header":"myheader", "body":{"name": "A"}}""")
:
public async Task<ActionResult> Create([Bind(Include = nameof(Foo.Bar1)+","+nameof(Foo.Bar2)+","+nameof(Foo.Bar3))] Foo fooObj)
请注意,我对json进行了一些更改,以便Jackson可以对其进行解析而无需进一步修改