我正在尝试使用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"
}
]
}'
答案 0 :(得分:1)
Newtonsoft.json与asp.net核心兼容,请阅读:https://github.com/JamesNK/Newtonsoft.Json/issues/977
如果您按照该票证和以下票证,您可以看到它的进度。 一个合理的解决方法是检查nuget中的“预发布”按钮。
答案 1 :(得分:1)
您已经在项目中依赖using Newtonsoft.Json;
nuget。
只是尝试添加
JsonProperty
和Microsoft.AspNetCore
属性可供您使用。
为什么你已经拥有它?您的项目包含对Microsoft.Extensions.Configuration.Json
nuget package的引用,其Newtonsoft.json
package作为依赖项,而后者又使用{{1}}。因此,在包恢复之后,所有这些包都可供您使用。