使用jquery调用REST服务时,我可以将POJO对象传递给$ .get(...)调用,jquery会将对象的属性序列化为GET QueryString。
我的REST服务是使用WebAPI开发的,我想知道是否可以自动将查询字符串参数反序列化为对象。
更确切地说:
如果我有POST方法,我可以从消息体中反序列化json,如下所示
我有以下jQuery代码
var dataObj // my POJO
j$.post('/api/myserv', dataObj, function (data, status, jqXHR) {
// ....
WebApi端点
' MyEntity class has same structure as POJO object
Public Function PostValue(<FromBody()> ByVal entity As MyEntity) As HttpResponseMessage
' here I have entity instantiated and setup
使用jquery get时,传递POJO对象:
var dataObj // my POJO
j$.get('/api/myserv', dataObj, function (data, status, jqXHR) {
// ....
这转换为
GET /api/myserv?prop1=val1&prop2=val2&...
在WebApi中,我想像POST一样实例化一个对象
' MyEntity class hadata from uri, s same structure as POJO object
Public Function GetValue(<FromURI()> ByVal entity As MyEntity) As HttpResponseMessage
' but here the entity is null
为了能够阅读我必须为POJO对象中的每个道具设置一个参数,例如
' MyEntity class hadata from uri, s same structure as POJO object
Public Function GetValue(prop1 As .., prop2 as ..., ) As HttpResponseMessage
有没有办法能够从一个对象中读取所有参数,因为它是its;它是来自身体的POST?
谢谢
答案 0 :(得分:3)
您可以在[FromUri]
方法参数中的对象前使用WebAPI
。在这里查看Parameter Binding
。
设置你的jquery调用如下:
$.ajax({
url: url,
type: 'GET',
dataType: 'json',
data: { prop1: 1, prop2: "two" },
success: function (result) {
//handle
}
});