[解決済み] 以下のjson文字列をjavaオブジェクトに変換する方法は?
2022-03-04 05:44:45
質問
以下のJSON文字列をJavaオブジェクトに変換したい。
String jsonString = "{
"libraryname": "My Library",
"mymusic": [
{
"Artist Name": "Aaron",
"Song Name": "Beautiful"
},
{
"Artist Name": "Britney",
"Song Name": "Oops I did It Again"
},
{
"Artist Name": "Britney",
"Song Name": "Stronger"
}
]
}"
私の目標は、次のような簡単にアクセスすることです。
(e.g. MyJsonObject myobj = new MyJsonObject(jsonString)
myobj.mymusic[0].id would give me the ID, myobj.libraryname gives me "My Library").
Jacksonのことは聞いたことがありますが、私が持っているjson文字列は、"mymusic"リストを含んでいるため、単なるキーと値のペアではないため、どのように使用すればよいのかわかりません。あるいは、Jacksonが最適でない場合、もっと簡単な方法がありますか?
どのように解決するのですか?
GSONを使わなくても、JacksonはプレーンなMap/Listを使うことができます。
ObjectMapper mapper = new ObjectMapper();
Map<String,Object> map = mapper.readValue(json, Map.class);
またはもっと便利なJSONツリーです。
JsonNode rootNode = mapper.readTree(json);
ところで、実際にJavaのクラスを作成して、(IMO)より便利にできない理由はないでしょう。
public class Library {
@JsonProperty("libraryname")
public String name;
@JsonProperty("mymusic")
public List<Song> songs;
}
public class Song {
@JsonProperty("Artist Name") public String artistName;
@JsonProperty("Song Name") public String songName;
}
Library lib = mapper.readValue(jsonString, Library.class);
関連
-
[解決済み] Java - JTextFieldが空かどうかを確認する
-
[解決済み] Java UnknownFormatConversionException
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] JSオブジェクトをJSON文字列に変換する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] java.sql.SQLException: ORA-00933: SQL コマンドが正しく終了していません。
-
[解決済み] このフォーマット(Tue Jul 13 00:00:00 CEST 2010)の日付をJavaの日付に変換する方法(文字列はalfrescoのプロパティに由来しています)
-
[解決済み] パラメータ[変数]の不正な修飾子;finalのみが許可される[closed]。
-
[解決済み] java.lang.ClassCastException: java.util.Arrays$ArrayList は java.util.ArrayList にキャストできません。
-
[解決済み] ORA-01654: インデックスを拡張できません。
-
[解決済み] raw 型のメンバへのアンチェックの呼び出し
-
[解決済み] Apache Camelのログに簡単なテキストを記録する
-
[解決済み] java.io.IOException。DER長の短い読み取り
-
[解決済み] ヘッドリカーシオンとテールリカーシオンの違い [重複]について
-
[解決済み] Java MEでJSON文字列をオブジェクトに変換する?