0

我正在尝试反序列化一个 json 对象,但在线ser.WriteObject(ms, inpJsonObj);抛出异常

编辑:按照建议,我创建了一个新的内存流并将修改后的对象复制到新的流中。但是“Out”字符串仍然是空白的!

DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(TestJSON));
            MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(inpStr));
            ms.Position = 0;
            TestJSON obj = (TestJSON)ser.ReadObject(ms);
            obj.Var11 = 99;
            obj.Var21 = 199;


            MemoryStream ms1 = new MemoryStream();
            ser.WriteObject(ms1, obj);

            ms1.Position = 0;
            StreamReader sr = new StreamReader(ms1);
            Out = sr.ReadToEnd();
            ms1.Close();
            ms.Close();
4

1 回答 1

0

在不知道异常细节的情况下我只能猜测,但看起来问题是您正在创建不可调整大小的内存流的实例并尝试将更新的对象写入其中 - 序列化的结果可能大于原始字符串,因此流不能接受它。

于 2013-07-22T10:02:17.710 回答