data class MyAction(
@Key("action") var action: String = "default",
@Key("data") var data: MutableMap<String, Any> = mutableMapOf()
)
以这种方式设计数据不是一个好的做法,但是如果您无法控制后端,这里有一个如何反序列化
class MyDeserializer : JsonDeserializer<MyAction>{
override fun deserialize(json: JsonElement, typeOfT: Type, context: JsonDeserializationContext): MyAction {
val myAction = MyAction()
val action = json.asJsonObject.get("action")
val data = json.asJsonObject.get("data")
myAction.action = context.deserialize<String>(action, String::class.java)
val myMap = mutableMapOf<String, Any>()
data.asJsonObject.keySet().forEach {
when (it) {
is String -> { myMap[it] = context.deserialize(data.asJsonObject.get(it), String::class.java) }
is MyCustomObject1 -> { myMap[it] = context.deserialize(data.asJsonObject.get(it), MyCustomObject1::class.java) }
is MyCustomObject2 -> { myMap[it] = context.deserialize(data.asJsonObject.get(it), MyCustomObject2::class.java) }
else -> myMap[it] = context.deserialize(data.asJsonObject.get(it), Any::class.java)
}
}
myAction.data = myMap
return myAction
}
}
不要忘记注册您的反序列化程序
fun getSmartGson() = GsonBuilder().registerTypeAdapter(MyAction::class.java, MyDeserializer())
我对Jackson有一个错误的理解,就是将json文件反序列化为poco。这是我的代码: 我的POCO命名为AnimalBean: }还有我的JSON文件: } 当我执行我的代码时,我有以下错误:未识别的字段“动物园”(类动画豆),未标记为可忽略的。我知道问题是我的json文件开始不直接由动物,但我不能改变它,因为它不是我的。我已经尝试把对象apper.configure(Deseriazatio
问题内容: 我试图映射对象数组,每个数组包含另一个嵌套的对象数组。但是,该映射不适用于嵌套数组。我如何在嵌套数组的内容上进行映射,同时使所有的父对象保持相同? 小提琴: https : //jsfiddle.net/69z2wepo/249197/ 数据结构如下: 地图看起来像 问题答案: 由于每个元素都有一个数组,因此您也必须结束。 例
我发现了这个关于使用限定符进行可迭代到不可迭代映射的示例: 但是,如果我想从emails集合的第一个元素中提取一个特定的字段,例如,就像我处理code一样? 例如,我希望编写如下的映射:
我用的是Protobuf 3。从文档来看,似乎无法定义嵌套贴图: 我正在尝试创建一种消息类型来表示期权链的定价信息(出价和要价)。对于那些不熟悉这些金融工具的人,基本上我有一套“到期日期(YYYYMMDD)”。在每个过期日期中,我都有一组“strikes(float number;如果需要,可以用字符串表示,我同意)”。在每次行使中,我有两个期权,一个“看跌”和一个“看涨”(这被称为期权的“右”)
我尝试使用MapStruct编写映射器类,如下所示: 目前它显示了“未知属性”“customer.customerid”和“usertypes.usertype.userid”等错误。有人能帮我用MapStruct映射所有这些元素吗? 问题2:我们如何绘制跟踪图?1)customerId usertypes->user->userid 2)pdtPrice offers->OffersType->
我用下面的方法尝试了嵌套映射。 我在声明“root_cause”时出错:[{“type”:“mapper_parsing_exception”,“reason”:“root映射定义有不支持的参数:[type:nested]。” 感谢您的帮助。