发送对象中的JSON数组到API

发送对象中的JSON数组到API

问题描述:

我需要发布对象中的数组API,这个API是这样的:发送对象中的JSON数组到API

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

使用定义如下模型我已尝试:

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; } 
    } 

但结果与预期不符,即模型返回:

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

这意味着SEAT_LOC_NO未按预期方式读取。我正在使用Newtonsoft进行序列化模型。

我该怎么办?

+0

WebApi操作的方法签名是什么? – DiskJunky

+0

@DiskJunky HTTPPost – blacoffees

+0

我的意思是如何声明,例如,'公共无效DoSomething(SomeObject param1,...)' – DiskJunky

没有测试它,但可能这会帮助你或者让你在正确的方向:

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; } 
} 

而当你将项目添加到SetInfos尝试这样的:

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

编辑

另一种可能的实现

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

谢谢你的队友,这个解决了我的问题。尽管它也发送了'Key'和'Value'对象。 – blacoffees

+0

没问题,我用另一种方式添加了一个编辑,这种方式也可能适用于您,并且不会有关键和价值问题。 – Isma