Ich sende diese Art von JSON zu asp.net Web-API-Aktion.Deserialize JSON-Array mit übersprungenen Elementen
{
"keys": {
"2a":["C",,,,,"0",,"0"]
}
}
Diese json ist POST-ed genau so, wie es in Antrag Körper meiner asp.net 4.5 Web api 2 Aktion.
[RoutePrefix("api/TImport")]
[Authorize]
public class TImportController : ApiController
{
[Route("")]
[HttpPost]
public async Task<TImportResult> Post(TImportParameters parameters)
{
// parameters.Keys["2a"] got deserialized as array[3] {"C","0","0" } :((
return await new TImport().RunAsync(parameters);
}
Was geschieht, ist, dass die in 2a Anordnung von 3 Elementen anstelle von 8 Elementen mit null oder leeren Elementen 2 bis 6 und 7.
deserialisiert wirdWas kann ich tun, um übersprungene Array-Elemente, wie zu desserialize Standardeinstellungen (Nullen oder leere Strings)?
Welche Bibliothek verwenden Sie zum Deserialisieren? Newtonsoft hat spezielle Funktionen wie nullhandling und missingmemberhandling, kann es wert sein zu überprüfen –
Ich verwende die Standard-Bibliothek, die für die Bindung von Argumenten in asp mvc verwendet wird. Das ist JsonMediaTypeFormatter basierend auf http://json.codeplex.com/ Ich bin sogar nicht in der Lage herauszufinden, dass ein Referenzverhalten für Json oder eine Sache der besonderen Bibliothek ist. – doker
Dies ist die newtonsoft, überprüfen Sie die Eigenschaft NullValueHandling in der JsonSerializer-Klasse können Sie dies auf Include festlegen und versuchen –