在使用Gson.fromJson()方法对字符串进行解析得时候,明明字符串格式是正确的,但是经常会遇到如下得异常:
Caused by: java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1 column 19 path $.msg
出现类似异常得原因往往是由于:json字符串与目标bean的属性对应错误。例如:
java bean
class TargetObject{
private String name;
private Object targetObject;
getter/setter......
}
json字符串:String ostr = {"name":"Tom",targetObject:""}
在这种情况下用fromJson(ostr, TargetObject.class)进行解析时就会报错,因为targertObject 应该是一个对象,不是字符串。
总结:在进行json字符串转换时,json字符转语法格式正确的情况下,字符串的格式要与目标对象属性类型一致,否则就会报错。