有没有什么方法可以将嵌套的JSON值映射到字段而不需要额外的类?我有一个JSON响应
{
"title": "Warriors",
"artist": "Imagine Dragons",
"apple_music": {
"url": "https://music.apple.com/us/album/warriors/1440831203?app=music&at=1000l33QU&i=1440831624&mt=1",
"discNumber": 1,
"genreNames": [
"Alternative",
"Music"
],
}
}
但是在apple_music
中,我只需要url
值。因此,我决定创建Kotlin数据类,并尝试使用@json
注释的选项
data class Song(
val title: String,
val artist: String,
@Json(name = "apple_music.url")
val appleMusicUrl: String
)
Required value 'appleMusicUrl' (JSON name 'apple_music.url') missing at $
下面的代码正在工作
data class Song(
val title: String,
val artist: String,
@Json(name = "apple_music")
val appleMusic: AppleMusic
)
data class AppleMusic(val url: String)
我有几个嵌套值,为它们创建额外的类是相当夸张的。还有比为apple_music
节点创建嵌套类更好的方法吗?
可以做到这一点的一种方法是使用@JSONQualifier使用备用类型适配器。例如:
@Retention(RUNTIME)
@JsonQualifier
annotation class AppleMusicUrl
data class Song(
val title: String,
val artist: String,
@AppleMusicUrl
val appleMusicUrl: String
)
@FromJson
@AppleMusicUrl
fun fromJson(json: Map<String, Any?>): String {
return json.getValue("url") as String
}
我有一个restendpoint,它返回3级嵌套json,如下所示: 我有一个java类,没有相同的3个嵌套级别: 当我使用restTemplate拨打rest电话时: jackson甚至没有使用json ignore属性映射字段departName(因为我猜它不在同一嵌套级别)。 如何将这个http json响应映射到忽略嵌套父json的java字段?
这是我的DTO: 这是我的实体: 我想配置我的ModelMapper将Tag#id映射到TagVolumeDTO#idTag。这可能吗?
我不知道如何在Java类中处理嵌套的JSON值。为了尽可能简单,我创建了四个Java类,每个类都有“嵌套级别”。然而,我试图在一个Java类中包含所有这些值。我该怎么做? Json: Java类:
我想映射这个JSON数据: 对于此java对象: 但是它失败了,所有的值都是。我尝试在变量上方添加,但没有成功。 是否可以反序列化JSON,使其仅映射到(这个)一个类? 编辑:我使用Spring StreamListener进行如下映射:
假设我有这些实体: null
我试图动态解析一些JSON到一个Map 但是当我尝试使用一些更复杂的JSON和嵌套信息时失败了。我试图从json解析示例数据。组织 我得到以下错误 异常在线程"main"com.fasterxml.jackson.databind.JsonMapping异常:不能反序列化实例的java.lang.字符串START_OBJECT令牌 有没有办法将复杂的JSON数据解析成映射?