0

サンプルの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 の属性の値がある限り、正常に機能します。しかし、いくつかの行でいくつかの属性値をスキップすると、エラーがスローされます

Newtonsoft.Json.Linq.JValue を Newtonsoft.Json.Linq.JObject に追加できません。

どんな助けでも大歓迎です。ありがとう

4

1 に答える 1

0

エラーは、オブジェクトに値を割り当てていないためです。これを行う必要があります。値を削除する場合は、少なくとも空の文字列を追加してください。

それは言った!ここに、JSON 文字列を手動で作成する危険性があります。可能であれば、常にそれを避ける必要があります。Web ページから読み取っている場合、その Web ページはペイロードをシリアライズする必要があります。次に、ペイロードをプルするために使用しているもの (コントローラー、Restful サービスなど) でデシリアライズする必要があります。.NET の優れた点は、この配管工事をすべて処理してくれることです。.NET の車輪を再発明しようとすると、実際に厄介な問題に直面することになります。

于 2013-03-13T22:12:32.157 に答える