2017-10-10 3 views
2

i besoin de POST tableaux dans l'objet de api qui va ressemble à ceci:Envoi des tableaux Json dans l'objet API

{ 
    "ds_seatInfo": [ 
    { 
     "SEAT_LOC_NO": "00201901", 
     "SEAT_LOC_NO": "00201902" 
    } 
    ], 
    "SCN_SCH_SEQ": "13178", 
    "REQ_FG_CD": "01", 
    "LOCK_APRV_KEY": "123123" 
} 

j'ai essayé d'utiliser des modèles qui définissent comme suit:

public class ds_seatInfo 
    { 
     public List<string> SEAT_LOC_NO { get; set; } 
    } 

public class BookParam 
    { 
     public string SCN_SCH_SEQ { get; set; } 
     public ds_seatInfo ds_seatInfo { get; set; } 
     public string REQ_FG_CD { get; set; } 
     public string LOCK_APRV_KEY { get; set; } 
    } 

mais le résultat ne sont pas comme prévu, ce Retournons modèle:

"{\"SCN_SCH_SEQ\":\"13178\",\"ds_seatInfo\":{\"SEAT_LOC_NO\":[\"00201901\",\"00201902\"]},\"REQ_FG_CD\":\"01\",\"LOCK_APRV_KEY\":\"123123\"}" 

qui signifie que le SEAT_LOC_NO ne lit pas comme prévu. J'utilise Newtonsoft pour sérialiser le modèle.

Que dois-je faire?

+0

Quelle est la signature de la méthode sur l'action WebApi? – DiskJunky

+0

@DiskJunky HTTPPost – blacoffees

+0

Je veux dire comment la méthode est déclarée, par exemple, 'public void DoSomething (SomeObject param1, ...)' – DiskJunky

Répondre

0

ai pas testé, mais peut-être cela vous aidera à vous ou obtenir dans la bonne direction:

public class BookParam 
{ 
    [JsonProperty("ds_seatInfo")] 
    public List<KeyValuePair<string, string>> SetInfos = new List<KeyValuePair<string, string>>(); 

    [JsonProperty("SCN_SCH_SEQ")] 
    public string ScnSchSeq { get; set; } 

    [JsonProperty("REQ_FG_CD")] 
    public string ReqFgCd { get; set; } 

    [JsonProperty("LOCK_APRV_KEY")] 
    public string LockAprvKey { get; set; } 
} 

Et lorsque vous ajoutez des éléments à essayer SetInfos comme ceci:

SetInfos.Add(new KeyValuePair<string, string>("SEAT_LOC_NO", "00201901")); 

Modifier

Une autre application possible

public class BookParam 
{ 
    [JsonProperty("ds_seatInfo")] 
    public List<SeatInfo> DsSeatInfo = new List<SeatInfo>(); 

    [JsonProperty("SCN_SCH_SEQ")] 
    public string ScnSchSeq { get; set; } 

    [JsonProperty("REQ_FG_CD")] 
    public string ReqFgCd { get; set; } 

    [JsonProperty("LOCK_APRV_KEY")] 
    public string LockAprvKey { get; set; } 
} 

public class SeatInfo() 
{ 
    [JsonProperty("SEAT_LOC_NO")] 
    public string SeatLocNo { get; set; } 
} 
+0

Merci mon pote, celui-ci a résolu mon problème. Bien que ce soit aussi envoyer 'Key' et 'Value' à l'intérieur de l'objet. – blacoffees

+0

Pas de problème, j'ai ajouté une modification d'une autre manière qui peut aussi fonctionner pour vous et qui n'aura pas le problème de clé et de valeur. – Isma