如何使用 jackson-databind 将 toplyrics 反序列化为列表?

问题描述 投票:0回答:1
{
  "artist": {
    "id": "3ade68b5gd237eda3",
    "desc": "Kiss",
    "url": "/kiss/",
    "pic_small": "/kiss/images/profile.jpg",
    "pic_medium": "/kiss/images/kiss.jpg",
    "rank": {
      "pos": "350",
      "period": 202404,
      "views": "1372",
      "uniques": "936",
      "points": "5.0"
    },
    "genre": [
      {
        "name": "Hard Rock",
        "url": "/browse/style/hard-rock.html"
      },
      {
        "name": "Heavy Metal",
        "url": "/browse/style/heavy-metal.html"
      },
      {
        "name": "Rock",
        "url": "/browse/style/rock.html"
      },
      {
        "name": "Classic Rock",
        "url": "/browse/style/classic-rock.html"
      }
    ],
    "related": [
      {
        "id": "3ade68b5gb2c7eda3",
        "name": "Van Halen",
        "url": "/van-halen/"
      },
      {
        "id": "3ade68b5g2cd6eda3",
        "name": "Deep Purple",
        "url": "/deep-purple/"
      },
      {
        "id": "3ade68b4gdda6eda3",
        "name": "Black Sabbath",
        "url": "/black-sabbath/"
      },
      {
        "id": "3ade68b5g0187eda3",
        "name": "Ramones",
        "url": "/the-ramones/"
      },
      {
        "id": "3ade68b3g0c86eda3",
        "name": "Led Zeppelin",
        "url": "/led-zeppelin/"
      },
      {
        "id": "3ade68b5gb1b8eda3",
        "name": "Ozzy Osbourne",
        "url": "/ozzy-osbourne/"
      },
      {
        "id": "3ade68b6g28c9eda3",
        "name": "Rolling Stones",
        "url": "/the-rolling-stones/"
      },
      {
        "id": "3ade68b5g1bf7eda3",
        "name": "Queen",
        "url": "/queen/"
      },
      {
        "id": "3ade68b5g2297eda3",
        "name": "Scorpions",
        "url": "/scorpions/"
      },
      {
        "id": "3ade68b5g8227eda3",
        "name": "Iron Maiden",
        "url": "/iron-maiden/"
      }
    ],
    "lyrics": {
      "item": [
        
        {
          "id": "3ade68b8gace4afa3",
          "desc": "Danger Us",
          "url": "/kiss/danger-us.html",
          "turl": "/kiss/danger-us-traducao.html"
        },
        {
          "id": "3ade68b6gbfebeda3",
          "desc": "Dark Light",
          "url": "/kiss/dark-light.html",
          "turl": "/kiss/dark-light-traducao.html"
        },
        {
          "id": "3ade68b8gb764efa3",
          "desc": "Deadly Weapons (The Elder demo)",
          "url": "/kiss/deadly-weapons-the-elder-demo.html"
        },
        
      ]
    }
  }
}

所以我试图反序列化这个 JSON,但我无法使用“toplyrics”来做到这一点。

我使用了 jackson-databind 并能够反序列化艺术家姓名,但是当我尝试对“toplyrics”执行相同操作时,程序返回错误 NullPointerException,表示响应为 null。 这是我的文件:

package com.pedruuv.sound.models;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public record ApiResponse(@JsonAlias("artist") ArtistData artist,
                        @JsonAlias("toplyrics") SongData lyrics,
                        @JsonAlias("albums") AlbumData album){

}

package com.pedruuv.sound.models;

import java.util.List;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public record SongData(@JsonAlias("item") List<Music> songs) {

}

package com.pedruuv.sound.models;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public record Music(@JsonAlias("desc") String title) {

}

java spring jackson-databind
1个回答
0
投票

它是完整的json吗?上面提供的 json 中缺少

toplyrics
。或者你的意思是
lyrics

© www.soinside.com 2019 - 2024. All rights reserved.