{ "author": "John", "books": [{ "title": "title1" }, { "title": "title2" }] }
このようなJSONがあったとして,Entityクラスを以下のように定義しました.
data class Data ( val author: String, val books: List<Book> ) { data class Book( val title: String ) }
val moshi = Moshi.Builder().add(ApplicationJsonAdapterFactory.INSTANCE).build() val data = moshi.adapter<Data>(Data::class.java).fromJson(json) showBook(data.books[1]) fun showBook(book: Data.Book) { println("author: ${}") // data.author にアクセスしたい(dataまるごとは渡したくない) println("book: ${book.title}") }
これをkotshiでシリアライズしたJSONオブジェクトの Bookインスタンス から Dataクラスのauthorにアクセスする方法は有りますでしょうか?
inner class Book()
と定義すると参照できるようになりますが,kotshiによって生成されたJavaコードが is not an enclosing class
のエラーでコンパイルできなくなります.
Jacksonでは BackReference
がある ようなのですが,なにか良い解決策があればご教示いただきたく思います.
あなたの回答
tips
プレビュー