
首先让我说,我在发布之前已经搜索过,只是找不到答案.
我在反序列化JSON时遇到麻烦.这是有效的JSON(已在http://jsonlint.com/中选中)
它是使用servicestack Json序列化程序生成的.
我越来越
java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1这是服务器发送的我的JsON:
{ "artistname": "", "pathInfo": "C:\Users\UnkNown\Desktop\Audio Sketches\Chill.mp3", "indexPos": 0, "messageType": "song"}接收方式:
{"artistname":"","pathInfo":"C:\Users\UnkNown\Desktop\Audio Sketches\Chill.mp3","indexPos":0,"messageType":"song"}这是持有它的对象:
public class Song { private String artistname; private String albumname; private String Titlename; private String pathInfo; private String indexPos; private String messageType; public Song() { }解决方法:
好的,我最终自己找到了答案,但是感谢所有的支持和帮助.
这是接收JsON对象并使用GSON初始化反序列化的代码.
Map messageObjMap = new Gson().fromJson(message, Map.class); String type = messageObjMap.get("messageType").toString(); switch (type) { case "song": try { Gson gson = new GsonBuilder().create(); Song song = gson.fromJson(message, Song.class); ... ... } ... ... }假设“消息”是整个JsON.相反,它只是从JsON解析的唯一密钥,这就是为什么反序列化不起作用的原因.希望能对某人有所帮助
总结以上是内存溢出为你收集整理的android-无法反序列化对象-预期为BEGIN_OBJECT,但在第1行第1列处为STRING全部内容,希望文章能够帮你解决android-无法反序列化对象-预期为BEGIN_OBJECT,但在第1行第1列处为STRING所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)