我尝试使用GSON将JSON结果解析为我的POJO类。
当我的POJO看起来像
时public class Content {
public String name;
public String shortDescription;
}
我可以成功完成此操作,将我的Json数据放在c1.name和c1.shortDescription中:
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
Content c1 = gson.fromJson(contentSt, Content.class);
但是当我的POJO看起来像
时public class Content {
public ObservableField<String> name= new ObservableField<String>();
public ObservableField<String> shortDescription = new ObservableField<String>();
}
我收到了这个错误
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 151 path $.shortDescription
有任何建议如何解决这个问题?我很高兴能得到任何帮助,感谢您阅读我的问题。
答案 0 :(得分:0)
您是否在GSON中尝试过TypeAdapter
?
您可以将字段值从对象转换为JSON格式,例如:
val gsonBuilder = GsonBuilder()
gsonBuilder.setTypeAdapter(Any::class, object : TypeAdapter<*>() {
...
override fun write(`in`: Any, `out`: JSONWriter) {
// your transform code here, for example:
if (`in`.observableFieldItem is ModelHasObservableFields) {
`out`.observableFieldItem = `in`.observableFieldItem.get()
}
}
...
})
上面是一个示例,请记住,它的语法可能不正确,但是您可以参考以下链接:http://www.javacreed.com/gson-typeadapter-example/ 希望对您有帮助!
答案 1 :(得分:-1)
您最好使用POJO并从BaseObservable扩展。这是实现双向数据绑定的另一种方法。参考:Data Binding Library