Json Converter无法识别null属性并抛出异常

时间:2013-03-13 22:00:18

标签: c# json .net-4.5 json.net

假设我有一个示例Json格式字符串

string per1 = @"[{""Email"":""AAA"",""mj_campaign_id"":""22"",""mj_contact_id"":""PPP"",""customcampaign"":""AAA"",""blocked"":""22"",""hard_bounce"":""PPP"",""blocked"":""22"",""hard_bounce"":""PPP""},"
                           + @"{""Email"":""BBB"",""mj_campaign_id"":""25"",""mj_contact_id"":""QQQ"",""customcampaign"":""AAA"",""blocked"":""22"",""hard_bounce"":""PPP"",""blocked"":""22""},"
                           + @"{""Email"":""CCC"",""mj_campaign_id"":""38"",""mj_contact_id"":""RRR"",""customcampaign"":""AAA"",""blocked"":""22"",""hard_bounce"":""PPP""}]";

我正在尝试使用

对其进行反序列化
var result = JsonConvert.DeserializeObject(per1);

只要字符串的所有行都具有以下属性的值,就可以正常工作:Email,mj_campaign_id,mj_contact_id,customcampaign,blocked,hard_bounce,error_related_to,error。但是当我在某些行中跳过一些sttribute值时会抛出错误

无法将Newtonsoft.Json.Linq.JValue添加到Newtonsoft.Json.Linq.JObject。

任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:0)

您的错误是因为您没有为对象分配值,您需要这样做。如果删除该值,至少添加一个空字符串。

这就是说! 这就是手动构建JSON字符串的危险。如果可以,你应该总是避免它。如果您正在从网页上阅读,那么该网页应该为您序列化有效负载,然后您应该使用您用于引入有效负载(控制器,休息服务等)的任何内容对其进行反序列化。 .NET的优点在于它可以为您处理所有这些管道,如果您尝试重新发明.NET轮,您真的会遇到痛苦的问题

相关问题