android Gson().fromJson()抛出com.google.gson.stream.MalformedJsonException

hc8w905p  于 2023-04-10  发布在  Android
关注(0)|答案(2)|浏览(290)

我正在使用Firebase FireStore数据库开发Android应用程序。
当我的应用程序读取数据时,Firebase返回下面的JSON数据。

{email=topofsan@naver.com, name=DennisNaver, comment=Test profile for Dennis Naver account, imageUrl=None}

我使用下面的Kotlin代码来解析Json数据。

val profile = Gson().fromJson(task.result.data.toString(), Profile::class.java)

然后Gson抛出下面的错误消息。

com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 60 path $.comment

数据类Profile定义如下。

data class Profile(var imageUrl: String, var email: String, var name: String, var comment: String)

我修改了Json数据如下,并尝试使用Gson解析它。然后它工作了。

{email=“topofsan@naver.com”, name=“DennisNaver”, comment=“Test profile for Dennis Naver account”, imageUrl=“None”}

我如何解决这个问题?

qjp7pelc

qjp7pelc1#

你需要修正你的数据。初始版本不是JSON。JSON需要引号。没有引号,解析器就不可能知道一个值在哪里结束,下一个值在哪里开始。我不知道是什么把数据放进你的数据库的,但是这个过程被破坏了。B

qltillow

qltillow2#

这是自我回答。我通过使用Gson().toJson()和Gson().fromJson()解决了这个问题

val json = Gson().toJson(task.result.data)
val profile = Gson().fromJson(json, Profile::class.java)

相关问题