Web API Json反序列化
本文关键字:反序列化 Json API Web | 更新日期: 2023-09-27 18:02:08
我正在使用Web Api。
我有一个a类型的对象。当我返回a类型的列表给我的客户端,然后使用Post方法传递a类型的列表,JSON序列化和反序列化是自动完成的。
因为我想使用POST方法传递多个参数,所以我创建了一个包装器对象,该对象具有我想要传递的每个参数的属性。JSON ser/DeSer负责这个包装器对象,但是我如何在包装器对象中反序列化表示类型A列表的JSON ?
谢谢。
添加代码:
public class ConfigurationUpdateMessage
{
public string IpAddress { get; set; }
public List<object> Configurations { get; set; }
}
方法
public string PutUpdateConfigurations(ConfigurationUpdateMessage configMessage)
{}
客户机代码$scope.UpdateConfigs = function () {
$.ajax({
url: 'api/configurations',
dataType: "json",
type: "PUT",
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({ IpAddress: "127.0.0.1", Configurations: $scope.configs }),
async: true,
processData: false,
cache: false,
success: function (data) {
},
error: function (xhr) {
}
});
};
PRE:你能贴一些代码吗?
如果包装器对象包含与序列化对象类型匹配的属性,模型绑定器应该自动将它们反序列化为匹配的属性。除非JSON的结构有问题
您应该在服务器端创建相同的包装器类型。
例如:public class OperationDTO
{
public string Parameter1 { get; set; }
public int Parameter2 { get; set; }
public IEnumerable<A> MyList { get; set; } //List<A> will also work too
}
你的Web Api动作应该是这样的:
[HttpPost]
public IHttpActionResult Operation([FromBody] OperationDTO)
{
//...
}