【问题标题】:How to convert STRING_TOO_LARGE string in json object android如何在json对象android中转换STRING_TOO_LARGE字符串
【发布时间】:2021-07-16 07:53:40
【问题描述】:

我正在尝试将字符串转换为 JSON 对象,但它不起作用我不断收到 STRING_TOO_LARGE 错误

这是我的 Json12 文件,我正在尝试将其转换为在谷歌地图上显示图层 我正在做这样的事情

val json2Object = JSONObject(getString(R.string.json_data))

请帮助我如何实现这一目标

【问题讨论】:

  • 您是否尝试过使用 Kotlin 序列化、Gson、Moshi 或 Jackson 来代替原生 JSONObject?

标签: android json google-maps


【解决方案1】:

您可以像这样使用https://github.com/Kotlin/kotlinx.serialization 实现这一目标:

@Serializable
class EsGeoJson (
    val type: String
    /*... describe all fields here */
)

val obj = Json.decodeFromString<EsGeoJson>(Constants.jsonData)

【讨论】:

  • 问题是我没有这个模型 EsGeoJson。如果我有模型,响应将是动态的,那么我也可以使用 Gson 完成
  • 每个国家/地区的 JSON 会有所不同,因此无法使用模型
  • 你仍然可以这样使用它:class EsGeoJson (val type: String, val dynamicData: Object)。然后将 dynamicData 转换为 list 或 map 或其他任何内容。
  • 至少我坚信 Gson 是可能的。 @ChiragPatel
  • val convertObject: JsonObject = Gson().fromJson(getString(R.string.json_data), JsonObject::class.java)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-02
  • 2013-08-14
  • 2014-10-22
  • 2018-01-06
  • 1970-01-01
相关资源
最近更新 更多