Ho un metodo API web che assomiglia a questo:WebAPI - Distacco al dizionario con JSON
[HttpPost]
[Route("messages")]
public IHttpActionResult Post(IEnumerable<Email> email)
{
AddToQueue(email);
return Ok("message added to queue");
}
La mia classe email si presenta come questo momento:
public string Body { get; set; }
public string From { get; set; }
public string Template { get; set; }
public string To { get; set; }
public string Type { get; set; }
E io sto postando al mio Metodo Post che utilizza il violinista, come questo:
User-Agent: Fiddler
Host: localhost:3994
Content-Length: 215
Content-Type: application/json; charset=utf-8
[
{"Body":"body","From":"from","To":"to","Template":"template"},
{"Body":"body1","From":"from1","To":"to1","Template":"template1"},
{"Body":"body2","From":"from2","To":"to2","Template":"template2"}
]
Questo funziona correttamente. Tuttavia, voglio essere in grado di aggiungere un dizionario per la mia classe e-mail, in modo che sarà simile a questa:
public string Body { get; set; }
public string From { get; set; }
public string Template { get; set; }
public string To { get; set; }
public string Type { get; set; }
public Dictionary<string, string> HandleBars { get; set; }
E ho cambiato la mia richiesta di simile a questa:
[{
"Body": "body",
"From": "from",
"To": "to",
"Template": "template",
"HandleBars": [{
"something": "value"
}]
},
{
"Body": "body1",
"From": "from1",
"To": "to1",
"Template": "template1"
},
{
"Body": "body2",
"From": "from2",
"To": "to2",
"Template": "template2"
}]
Tuttavia, quando il metodo Post riceve questo, tutti i campi Email vengono popolati, ad eccezione del dizionario HandleBars. Cosa devo fare per passarlo correttamente? Il mio json è strutturato in modo errato?
Non sarebbe (all'interno della matrice JSON) '{ "valore": "qualcosa"," tasto ":" key1 "}'? (a seconda di come stai incastrando il tuo json potrebbe essere Value en Key) – Igor
'HandleBars' è un' 'e stai passando solo una' stringa', così come dovresti dare il contenuto dentro 'HandleBars' nome' key' e 'value' –
ragerory
vedere, qui è già una risposta http://stackoverflow.com/questions/2494294/sending-a-json-array-to-be-received-as-a-dictionarystring -string – meorfi