如何在Web API 2.0中接受JSON并返回相同的内容?

时间:2014-12-11 12:40:54

标签: json vb.net asp.net-web-api visual-studio-2013

我不是VB开发人员,而是试图帮助同事。

尝试使用Web API 2.0和VB来接受JSON POST,然后将其作为自定义对象进行映射。

VS 2013中包含的模板包含POST示例子例程但不返回。我的尝试不会通过rest客户端(postman)发布JSON对象时创建值,然后当然返回null。设置标头,接受Application / JSON和RAW JSON HTTP POST。下面是我对包含的示例控制器所做的更改,我添加了该类。我的理解是Web API应该能够将发布的JSON对象映射到自定义类并处理所有序列化。我显然错过了一些东西。

    Public Function PostValue(<FromBody()> ByVal value As Value)
    Return value
    End Function 

注意:值是带有2个公共字段的简单类

Public Class Value

Public firstName As String
Public lastName As String

End Class

1 个答案:

答案 0 :(得分:0)

每当您将JSON对象发布到Web api时,控制器会自动将键映射到Model属性,并在收到JSON对象时成功,它将被视为keyvalue对,其中键作为Model属性名称和值是否包含像

那样的价值

使用Javascript:

var data= {
 firstName: $("#Name").val(),
 lastName: $("#lName").val()
 };

 //Convert javascript object to JSON object
 var DTO = JSON.stringify(data);
 $.ajax({
 url: 'api/product', //calling Web API controller product
 cache: false,
 type: 'POST',
 contentType: 'application/json; charset=utf-8',
 data: DTO,
 dataType: "json",
 success: function (returnedData) {
 $.each(object, function (key, val) {
   // do anything with your key val pair});
 }
 });

控制器:在控制器中你会看到_mode l在帖子上填满你通过json对象发送的数据:firstName和lastName属性被填充

Public function PostData(_model as Value)
        Return Json(_model)
End Function