发送对象中的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进行序列化模型。
我该怎么办?
答
没有测试它,但可能这会帮助你或者让你在正确的方向:
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
WebApi操作的方法签名是什么? – DiskJunky
@DiskJunky HTTPPost – blacoffees
我的意思是如何声明,例如,'公共无效DoSomething(SomeObject param1,...)' – DiskJunky