0

我正在尝试使用 aspnetcore 将 JSON 对象发送到 webapi。这似乎是一项简单的任务。但是,JSON 数据的字段名包括一个破折号(-),例如{ Mj-TemplateID : 1}。由于 Newtonsoft.Json 不适用于 .netcore,因此我无法使用JsonProperty如下所示更改 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":"pilot@mailjet.com",
    "FromName":"Mailjet Pilot",
    "Subject":"Your email flight plan!",
    "MJ-TemplateID":"1",
    "MJ-TemplateLanguage":true,
    "Recipients":[
            {
                    "Email": "passenger@mailjet.com"
            }
    ]
}'
4

2 回答 2

1

您已经Newtonsoft.json在项目中依赖于 nuget。只是尝试添加

using Newtonsoft.Json;

JsonProperty属性将为您提供。

为什么你已经有了?您的项目包含对Microsoft.AspNetCore nuget package的引用,该引用具有Microsoft.Extensions.Configuration.Json package作为依赖项,而后者又使用Newtonsoft.json. 因此,在包恢复后,所有这些包都可供您使用。

于 2017-04-11T13:27:31.020 回答
1

Newtonsoft.json 兼容asp.net core,请阅读:https ://github.com/JamesNK/Newtonsoft.Json/issues/977

如果您关注该票证和以下票证,您可以看到它的进度。一个合理的解决方法是检查 nuget 中的“预发布”按钮。

于 2017-04-11T10:37:00.880 回答