Nik*_*tve 6 jetbrains-ide kotlin kotlin-multiplatform kotlin-multiplatform-mobile
我目前正在努力寻找向现有资产添加财产的最佳方法jsonObject(kotlinx.serialization.json.JsonObject)
甚至我发现 JsonObject 内部有私有的不可变映射
private val content: Map<String, JsonElement>
Run Code Online (Sandbox Code Playgroud)
场景:假设我已经有一个jsonObject
包含 50 个属性的对象,并且考虑到任何键上的 jsonObject 都可以具有任意数量的深度。
针对这种情况,我们如何高效地执行以下操作:
- 添加原始属性
- 更新原始属性
- 删除原始属性
仅供参考:即使我发现有一个名为JsonObjectBuilder的类,但它并不需要现有的 JsonElement / JsonObject / JsonArray 事实上,它会新创建另一个 jsonObject。
感谢您抽出时间阅读到这里
Мих*_*аль 15
由于此内部content
映射是不可变的,因此编辑的唯一方法JsonObject
是创建新映射(从旧映射中创建新映射)。幸运的是,有一个JsonObject
构造函数采用Map
,而且还JsonObject
实现了Map
接口本身。所以我建议使用以下习语:
val newJsonObj = JsonObject(oldJsonObj.toMutableMap().apply {
// edit like ordinary mutable map
})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3381 次 |
最近记录: |