C# json.NET中的序列化不会';行不通

C# json.NET中的序列化不会';行不通,c#,.net,json,serialization,C#,.net,Json,Serialization,有人能告诉我为什么这个代码不起作用吗? 没有行serializer.Serialize(jw,newbool[]{…})一切正常。出现异常的原因是您告诉编写器您将编写一个对象,并且正在编写一个数组。试着这样做: JsonSerializer serializer = new JsonSerializer(); jw.WritePropertyName("info"); serializer.Serialize(jw, res); if (res[2] == true) { jw.Wri

有人能告诉我为什么这个代码不起作用吗?
没有行
serializer.Serialize(jw,newbool[]{…})一切正常。

出现异常的原因是您告诉编写器您将编写一个对象,并且正在编写一个数组。试着这样做:

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();
}
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();
或者像这样的替代方案:

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();
}
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();

请发布带有堆栈跟踪的错误消息为什么不简单地使用
JsonConvert.SerializeObject(obj)
请不要像这样发布问题的更新。在对原始问题的编辑中包含异常文本和堆栈跟踪。如果链接断开,这个问题对任何未来的查找者来说都会变得不那么有价值。=)