mirror of
https://github.com/fankes/moshi.git
synced 2025-10-20 16:39:22 +08:00
Don't mangle property names that contain a dollar sign (#1446)
Without this fix the new test fails like this: value of: toJson(...) expected: {"$a":"apple","$b":"banana"} but was : {"${'$'}a":"apple","$b":"banana"}
This commit is contained in:
@@ -390,8 +390,7 @@ private fun declaredProperties(
|
||||
propertySpec = property,
|
||||
parameter = parameter,
|
||||
visibility = property.modifiers.visibility(),
|
||||
jsonName = parameter?.jsonName ?: property.annotations.jsonName()
|
||||
?: name.escapeDollarSigns(),
|
||||
jsonName = parameter?.jsonName ?: property.annotations.jsonName() ?: name,
|
||||
jsonIgnore = isIgnored
|
||||
)
|
||||
}
|
||||
@@ -517,10 +516,6 @@ private fun <T> AnnotationSpec.elementValue(name: String): T? {
|
||||
}?.value?.value as? T
|
||||
}
|
||||
|
||||
private fun String.escapeDollarSigns(): String {
|
||||
return replace("\$", "\${\'\$\'}")
|
||||
}
|
||||
|
||||
internal val TypeElement.metadata: Metadata
|
||||
get() {
|
||||
return getAnnotation(Metadata::class.java)
|
||||
|
@@ -243,8 +243,7 @@ private fun declaredProperties(
|
||||
propertySpec = propertySpec,
|
||||
parameter = parameter,
|
||||
visibility = property.getVisibility().toKModifier() ?: KModifier.PUBLIC,
|
||||
jsonName = parameter?.jsonName ?: property.jsonName()
|
||||
?: name.escapeDollarSigns(),
|
||||
jsonName = parameter?.jsonName ?: property.jsonName() ?: name,
|
||||
jsonIgnore = isTransient || parameter?.jsonIgnore == true || property.jsonIgnore()
|
||||
)
|
||||
}
|
||||
@@ -279,7 +278,3 @@ private fun KSPropertyDeclaration.toPropertySpec(
|
||||
}
|
||||
.build()
|
||||
}
|
||||
|
||||
private fun String.escapeDollarSigns(): String {
|
||||
return replace("\$", "\${\'\$\'}")
|
||||
}
|
||||
|
Reference in New Issue
Block a user