1. negito6

    No comment

    negito6
Changes in body
Source | HTML | Preview
@@ -1,34 +1,32 @@
ちょっとハマったのでメモ
-kotlin でやっていたのでコードサンプルも kotlin で書きますが、 Java でも同じはず。です。
+kotlin でやっていたのでコードサンプルも kotlin で書きますが、 Java でも同じはず。です。gson のバージョンは 2.8.4)
-gson のバージョンは 2.8.4
-
-とある API から取ってきた json をハンドリングしようとして、モックのつもりで書きのように書いた。
+とある API から取ってきた json を Gson でハンドリングしようとして、モックのつもりで下記のように書いた。
`fun` の中で `JsonFormat` を定義して `Gson().fromJson` に渡す
```kotlin
class Sample {
fun parseJson(jsonString: String) {
data class SampleJsonFormat(
val sample_key: String
)
val obj = Gson().fromJson(jsonString, SampleJsonFormat::class.java)
if (obj == null) {
System.out.print("obj is null.")
}
}
}
```
と、たとえば、 `{"sample_key":"sample value"}` を渡しても、
```kotlin
Sample().parseJson("""{"sample_key":"sample value"}""")
```
この場合 `obj is null.` が出力される。 `SampleJsonFormat` が見つからなかったからといって例外とかは出ない。
解決法の一個としては、desirialize するクラス(この例でいうと `data class SampleJsonFormat`)を `class Sample` の外に定義してあげると、きちんとデータが作れる。