我是编程新手,最近在Kotlin用Android Studio启动了一个项目。
所以,我遇到了一个JSON对象的问题。我从BroadcastReceiver对象获取数据,更具体地说,是一个字符串,格式如下:
{"s1":1}
这是一个简单的字符串,我用了一个函数调用来调用Json。
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
}
我这样做是正确的方式吗?,我如何改进我的代码?
谢谢你的帮助,对不起我的英语!
3条答案
按热度按时间3ks5zfa01#
欢迎来到本站!
在2019年,没有人真正手动解析JSON,使用Gson库要容易得多,它把你的对象作为输入,然后吐出JSON字符串,反之亦然。
示例:
这样你就不用直接使用JSON字符串了,而是使用Kotlin对象,这是类型安全的,也更方便。看看文档,它很大,也很容易理解
以下是一些教程:
UPDATE:如果你真的想使用JSONObject,那么就使用它的构造函数,它带有一个字符串参数,可以自动解析你的JSON字符串。
8tntrjer2#
最好的方法是使用kotlinx.serialization.将Kotlin对象转换为JSON表示形式,并使用
@Serializable
注解反向标记其类,然后在Json对象上使用提供的encodeToString
和decodeFromString<T>
扩展函数:其他示例:https://blog.jetbrains.com/kotlin/2020/10/kotlinx-serialization-1-0-released/
1szpjjfi3#
我在这里为Kotlin开发人员添加3个模板,它将解决JSON转换和解析问题。
Kotlin模型类
从模型类转换为Json字符串
从Json文件解析/Strong