2017-04-11 4 views
0

aspnetcoreを使用してwebapiにJSONオブジェクトを送信しようとしています。これは簡単な作業のようです。ただし、JSONデータのフィールド名には、ダッシュ( - )(例:{ Mj-TemplateID : 1})が含まれています。 Newtonsoft.Jsonは.netcoreでは利用できないので、JsonPropertyを使用してjsonフィールド名を以下のように変更することはできません。aspnetcoreのwebapiに投稿するjsonデータのカスタムフィールド名

public class SendData { 
    [JsonProperty("Mj-TemplateID")] 
    public string TemplateId { get; set; } 
} 

jsonデータを送信する際に別の名前を指定するにはどうすればよいですか?

私はこの

curl -s \ 
-X POST \ 
--user "$MJ_APIKEY_PUBLIC:$MJ_APIKEY_PRIVATE" \ 
https://api.mailjet.com/v3/send \ 
-H 'Content-Type: application/json' \ 
-d '{ 
    "FromEmail":"[email protected]", 
    "FromName":"Mailjet Pilot", 
    "Subject":"Your email flight plan!", 
    "MJ-TemplateID":"1", 
    "MJ-TemplateLanguage":true, 
    "Recipients":[ 
      { 
        "Email": "[email protected]" 
      } 
    ] 
}' 

答えて

1

Newtonsoft.jsonはasp.netコアと互換性があるようなものを送信する必要があり、読んでください:https://github.com/JamesNK/Newtonsoft.Json/issues/977

を使用すると、そのチケットと、次の1に従っている場合あなたが見ることができますそれの進歩。 可能な解決策は、ナゲットの「プレリリース」ボタンをチェックすることです。

1

あなたのプロジェクトではすでにNewtonsoft.jsonナゲットに依存しています。 だけ

using Newtonsoft.Json; 

JsonProperty属性があなたのために利用できるようになります追加してみてください。

なぜあなたは既にそれを持っていますか?あなたのプロジェクトには、Microsoft.AspNetCorenuget packageという参照が含まれていて、Microsoft.Extensions.Configuration.Jsonpackageの依存関係があり、順番にNewtonsoft.jsonが使用されています。だから、パッケージの復元後、それらのパッケージはすべてあなたのために利用可能です。

+0

申し訳ありませんが、私の悪いです。はい、それは動作します。 Visual Studioはコンパイルエラーで "using"を追加するために(エラーを修正するための提案として)私を提供していなかったので、Newtonsoft.Jsonのサポートされているフレームワークをチェックしましたが、.netcoreは見つかりませんでした。だから、私はそれが動作しないと思った。 – dudedev

関連する問題