android-无法反序列化对象-预期为BEGIN_OBJECT,但在第1行第1列处为STRING

android-无法反序列化对象-预期为BEGIN_OBJECT,但在第1行第1列处为STRING,第1张

概述首先让我说,我在发布之前已经搜索过,只是找不到答案.我在反序列化JSON时遇到麻烦.这是有效的JSON(已在http://jsonlint.com/中选中)它是使用servicestackjson序列化程序生成的.我越来越java.lang.IllegalStateException:ExpectedBEGIN_OBJECTbutwasSTRINGatline1col

首先让我说,我在发布之前已经搜索过,只是找不到答案.

我在反序列化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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1078329.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存