首页 > 解决方案 > 使用 xamarin App 的 json 序列化和反序列化未按预期工作

问题描述

我正在尝试进行序列化和反序列化,但不知何故,它在 xamarin 应用程序上的工作与在控制台应用程序上的工作方式相同,这是一个使用此 json 字符串和自定义包装器的快速示例

    public class JsonWrapper
{
    public string ObjType { get; set; }
    public object Obj { get; set; }
}

这是一个要明确的json直接字符串

            var json =
            "{\"ObjType\":\"System.Exception\",\"Obj\":{\"ClassName\":\"System.Exception\",\"Message\":\"Printer Is Not Connected\",\"Data\":null,\"InnerException\":null,\"HelpURL\":null,\"StackTraceString\":null,\"RemoteStackTraceString\":null,\"RemoteStackIndex\":0,\"ExceptionMethod\":null,\"HResult\":-2146233088,\"Source\":null,\"WatsonBuckets\":null}}\r\n";
        var obj= JsonConvert.DeserializeObject<JsonWrapper>(json);

        var type = Type.GetType(obj.ObjType);
        var obj2 = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(obj.Obj), type);
        var message = (obj2 as Exception).Message;

它会得到缺少信息的消息变量,我的意思是不会得到打印机未连接的消息,相同的代码在控制台应用程序中运行良好,所以 idk,有人可以帮忙吗?

标签: javac#jsonxamarin

解决方案


我的问题是在反序列化 Json 字符串后我没有得到相同的实例不知道为什么在此处输入图像描述

请检查一下,在控制台应用程序上,我得到一个异常实例,其中包含相同的消息或原始实例中的任何数据


推荐阅读