我有一个使用具有API端点的WebAPI2的C#/ ASP.Net项目。该端点提供了一组JSON对象作为对GET请求的响应。我使用本机对象的模型进行序列化,这是我理解的WebAPI2中的标准方法。
序列化发生在幕后'当我发送为IEnumerable模型输入的OK HttpActionResult时,
return Ok<IEnumerable<Model>>(arrayOfModels);
我有第二个应用程序,它接收模型数组的JSON字符串表示形式。对于具有单个元素的数组...
,要反序列化的入站字符串如下所示[
{
"ExecID": "EXWB4KT-1",
"Symbol": "CERT-EUR-TEST",
"ExecutionTime": "2016-07-28T14:59:56.24",
"BuyExchID": "IDH64KT-1",
"SellExchID": "IDH64KT-3",
"Tradable": {
"CERT": {
"AccSrc": "ANDY-CERT",
"AccDst": "HIBLET-CERT",
"Qty": "0.01000000",
"State": "PENDING"
},
"EUR1": {
"AccSrc": "HIBLET-EUR",
"AccDst": "ANDY-EUR",
"Qty": "0.33",
"State": "PENDING"
}
}
}
]
我应该如何重新补充JSON数据,请记住我在另一个项目中有可用的WebAPI2模型?
由于我控制了两端,我认为反序列化回到一系列模型应该是微不足道的,但我不知道该怎么做。我知道有很多可能的方法可以做到这一点,我正在寻找最安静或最干净的方式。
答案 0 :(得分:1)
试试Newsoft.Json nuget包。然后是创建模型和反序列化的问题。像这样:
public class MyObject
{
int ExecID { get; set; }
string Symbol { get; set; }
//etc etc
}
然后在你的方法中:
using Newtonsoft.Json;
public class MyMethod(string json)
{
List<MyObject> objList = JsonConvert.DeserializeObject<List<MyObject>>(json);
}
此代码可能不准确,但应该类似