假设我有一个示例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。
任何帮助将不胜感激。感谢
答案 0 :(得分:0)
您的错误是因为您没有为对象分配值,您需要这样做。如果删除该值,至少添加一个空字符串。
这就是说! 这就是手动构建JSON字符串的危险。如果可以,你应该总是避免它。如果您正在从网页上阅读,那么该网页应该为您序列化有效负载,然后您应该使用您用于引入有效负载(控制器,休息服务等)的任何内容对其进行反序列化。 .NET的优点在于它可以为您处理所有这些管道,如果您尝试重新发明.NET轮,您真的会遇到痛苦的问题