com.google.gson.stream.MalformedJsonException: Expected name at line 1 colum

本文深入探讨了使用Gson解析JSON数据时可能遇到的错误,包括实体类权限问题、字段权限设置、序列化名称错误及JSON数据转义过度等,并提供了相应的解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

话不多说,用Gson进行解析后台传来的json数据时,因为需要模拟数据,就保存了一份在string.xml文件中,减少测试时多次进行网络请求,结果拿来解析一下,报了错,如下:

Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 2

之前总结了一些gson解析失败的原因:

1. 实体类未指定访问修饰符为 public
2. 实体类中的字段未制定访问修饰符为 public
3. 实体类中的字段的 @SerializedName(value = myValue),其中myValue包含不该出现的空格
但是这次全部检查,以上情况均未出现,头大了,咋回事…不经意回到string.xml中看了一下保存的字符串,呵呵,原来被转义了两次,去除一层转义之后,恢复正常。
so 现在要加上一种情况

1. 实体类未指定访问修饰符为 public
2. 实体类中的字段未制定访问修饰符为 public
3. 实体类中的字段的 @SerializedName(value = myValue),其中myValue包含不该出现的空格
4. 拿到的json数据有问题,有可能是被转义两次

本人不才,有错忘指出。。。
你遇到过什么情况呢?可以留言补充,互相学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值