Я использую google-gson для сериализации карты Java в строку JSON. Он предоставляет построитель обрабатывает нулевые значения :
Gson gson = new GsonBuilder().serializeNulls().create();
Проблема в том, что результатом является строка null
, например:
gson.toJson(categoriesMap));
{"111111111":null}
И требуемый результат:
{"111111111":""}
I может выполнить замену строки для null
и ""
, но это некрасиво и подвержено ошибкам. Есть ли встроенная поддержка gson для добавления настраиваемой строки вместо null
?
Если Вы хотите использовать этот подход с полем.
Просто создают NullStringToEmptyTypeAdapter
class NullStringToEmptyTypeAdapter : TypeAdapter<String>() {
override fun read(reader: JsonReader): String {
if (reader.peek() === JsonToken.NULL) {
reader.nextNull()
return ""
}
return reader.nextString()
}
override fun write(writer: JsonWriter, value: String?) {
if (value == null) {
writer.nullValue()
return
}
writer.value(value)
}
}
и затем добавляют @JsonAdapter
аннотация к Вашему полю
@JsonAdapter(NullStringToEmptyTypeAdapter::class)
val yourField: String