2017-04-11 12 views
0

aspnetcore를 사용하여 webapi로 JSON 객체를 보내려고합니다. 이것은 간단한 작업처럼 보입니다. 하지만 JSON 데이터의 필드 이름에는 대시 (-) (예 : { Mj-TemplateID : 1})가 포함됩니다. Newtonsoft.Json은 .netcore에서 사용할 수 없기 때문에 JsonProperty을 사용하여 json fieldname을 아래와 같이 변경할 수 없습니다.aspnetcore에서 webapi에 게시 할 json 데이터의 사용자 정의 필드 이름

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

json 데이터를 보내는 동안 다른 이름을 지정하려면 어떻게해야합니까?

내가 asp.net 코어와 호환이

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 같은 것을 보낼 필요 참조하시기 바랍니다 : https://github.com/JamesNK/Newtonsoft.Json/issues/977

당신이 티켓 당신이 볼 수있는 다음 중 하나를 수행하면 그것의 진행. 그럴듯한 해결 방법은 너겟의 "사전 릴리스"버튼을 점검하는 것입니다.

1

이미 프로젝트에 Newtonsoft.json 너겟에 대한 의존성이 있습니다. 그냥

using Newtonsoft.Json; 

JsonProperty 속성이 당신을 위해 사용할 수 추가해보십시오.

왜 이미 사용하고 계십니까? 귀하의 프로젝트에는 Microsoft.AspNetCorenuget package에 대한 참조가 포함되어 있으며, 종속성으로 Microsoft.Extensions.Configuration.Jsonpackage이 있으며, 차례로 Newtonsoft.json이 사용됩니다. 따라서 패키지를 복원 한 후에 모든 패키지를 사용할 수 있습니다.

+0

죄송합니다. 예, 작동합니다. Visual Studio에서 컴파일 오류에 "using"을 추가하기 위해 (오류 수정 제안) 제안하지 않았고 Newtonsoft.Json의 지원되는 프레임 워크를 검사했지만 .netcore를 찾지 못했습니다. 그래서 나는 그것이 효과가 없다고 생각했습니다. – dudedev