我正在使用Web Api。
我有一个A类型的对象,当我将一个类型A的列表返回给我的客户端,然后使用Post方法返回类型A的列表时,JSON序列化和反序列化将自动完成。
因为我想使用我的POST方法传递多个参数,所以我创建了一个包装器对象,其中包含我想要传入的每个参数的属性。对于这个包装器对象,JSON ser / DeSer需要处理,但是如何做我反序列化了在包装器对象中表示我的Type A列表的JSON?
感谢。
添加了代码:
public class ConfigurationUpdateMessage
{
public string IpAddress { get; set; }
public List<object> Configurations { get; set; }
}
Post方法
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) {
}
});
};
答案 0 :(得分:0)
PRE:你能发一些代码吗?
如果包装器对象包含与序列化对象类型匹配的属性,则模型绑定器应自动将它们反序列化为匹配的属性。除非你正在发布JSON的结构有什么问题。
答案 1 :(得分:0)
您应该在服务器端创建相同的包装器类型。
例如:
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)
{
//...
}