Fix dollar sign escaping for json key names.

This commit is contained in:
Eric Cochran
2018-07-24 18:03:23 -07:00
parent 78821bbc80
commit 248be5805b
3 changed files with 23 additions and 2 deletions

View File

@@ -55,6 +55,27 @@ class GeneratedAdaptersTest {
@JsonClass(generateAdapter = true)
data class JsonAnnotation(@Json(name = "foo") val bar: String)
@Test
fun jsonAnnotationWithDollarSign() {
val adapter = moshi.adapter(JsonAnnotationWithDollarSign::class.java)
// Read
@Language("JSON")
val json = "{\"\$foo\": \"bar\"}"
val instance = adapter.fromJson(json)!!
assertThat(instance.bar).isEqualTo("bar")
// Write
@Language("JSON")
val expectedJson = "{\"\$foo\":\"baz\"}"
assertThat(adapter.toJson(JsonAnnotationWithDollarSign("baz"))).isEqualTo(expectedJson)
}
@JsonClass(generateAdapter = true)
data class JsonAnnotationWithDollarSign(@Json(name = "\$foo") val bar: String)
@Test
fun defaultValues() {
val adapter = moshi.adapter(DefaultValues::class.java)