[英]serialization in json.NET doesn't work
JsonSerializer serializer = new JsonSerializer();
jw.WritePropertyName("info");
serializer.Serialize(jw, res);
if (res[2] == true)
{
jw.WritePropertyName("healer"); jw.WriteStartObject();
jw.WritePropertyName("running");
jw.WriteValue(res[1] == true ? (checkBox1.IsChecked == true ? true : false) : false);
jw.WritePropertyName("main"); jw.WriteStartObject();
serializer.Serialize(jw, new bool[] { true, true, true, true, true, true });
jw.WriteEndObject(); // here
jw.WriteEndObject();
}
有人能告诉我为什么这段代码不起作用吗? 没有行serializer.Serialize(jw, new bool[] {...}});
一切正常。
异常的原因是你告诉作者你将写一个对象并且你正在写一个数组。 像这样尝试:
jw.WritePropertyName("healer");
jw.WriteStartObject();
jw.WritePropertyName("running");
jw.WriteValue(res[1] == true ? (checkBox1.IsChecked == true ? true : false) : false);
jw.WritePropertyName("main");
serializer.Serialize(jw, new bool[] { true, true, true, true, true, true });
jw.WriteEndObject();
或者作为这样的替代方案:
jw.WritePropertyName("healer");
jw.WriteStartObject();
jw.WritePropertyName("running");
jw.WriteValue(res[1] == true ? (checkBox1.IsChecked == true ? true : false) : false);
jw.WritePropertyName("main");
var myArray = new bool[] { true, true, true, true, true, true };
jw.WriteStartArray();
foreach (bool myValue in myArray)
{
jw.WriteValue(myValue);
}
jw.WriteEndArray();
jw.WriteEndObject();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.