我正在使用Firebase开发一个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”}
我如何解决这个问题?
您需要修复您的数据。初始版本不是JSON。JSON需要引号。如果没有这些,解析器就不可能知道一个值在哪里结束,下一个值在哪里开始。我不知道是什么把数据放入你的数据库,但这个过程是坏的。B
这是自己的回答。我通过使用Gson().toJson() &.fromJson Gson () ()
val json = Gson().toJson(task.result.data)
val profile = Gson().fromJson(json, Profile::class.java)