首页 > 解决方案 > 如何在 kotlin 中生成 json 对象?

问题描述

我真的是编程新手,最近在 Kotlin 中使用 Android Studio 启动了一个项目。

所以,我对 JSON 对象有疑问。我从一个 BroadcastReceiver 对象获取数据,更具体地说是一个字符串,具有以下格式:

{"s1":1}

这是一个简单的字符串。所以我接受了一个函数调用 toJson 并且我这样做了。

private fun toJson(data:String): JSONObject {

    var newData: String = data.replace("\"","")
    newData = newData.replace("{","")
    newData = newData.replace("}","")

    val newObject = newData.split(":")
    val name = newObject[0]
    val value = newObject[1]
    val rootObject = JSONObject()
    rootObject.put(name,value)

    return rootObject
}

我这样做是正确的方式?,我该如何改进我的代码?

感谢您的帮助,对不起我的英语!

标签: androidkotlin

解决方案


欢迎来到 StackOverflow!

在 2019 年,没有人真正手动解析 JSON。使用Gson库要容易得多。它将您的对象作为输入并吐出 JSON 字符串,反之亦然。

例子:

data class MyClass(@SerializedName("s1") val s1: Int)

val myClass: MyClass = Gson().fromJson(data, MyClass::class.java)
val outputJson: String = Gson().toJson(myClass)

这样您就不会直接使用 JSON 字符串,而是使用类型安全且更方便的 Kotlin 对象。查看文档。它很大而且很容易理解

这里有一些教程:

更新:如果你真的想使用 JSONObject ,那么使用它的构造函数和一个字符串参数来自动解析你的 JSON 字符串。

val jsonObject = JSONObject(data)

推荐阅读