通知api客户端返回的JSON对象的空值属性的最佳方法是什么?

时间:2015-06-12 14:31:00

标签: asp.net-web-api asp.net-web-api2

我有一个asp.net web api 2应用程序,它为api客户端提供JSON格式的数据。对于GET api方法,一个使用Java和C ++语言调用那些GET方法api的api客户端程序员。但是,对于JSON对象的空值属性,客户端程序员说他为这些属性收到“null”(null in-quote字符串)。在SQL Server数据库中,对于不同数据库表的nvarchar(字符串)和datetime列,我将这些空值列保存为正常SQL服务器约定的null,但不是“null”字符串。

我的问题是让api客户端程序员知道null值属性是否为null以区别于真正的“null”字符串的最佳方法,例如{“state”:“null”}一个文字字符串。提前谢谢。

我有许多GET方法apis,它为JSON对象的空值属性返回null。

我使用Postman或Advanced Rest Client工具测试我的GET Api方法的null属性,我看到这些工具在“null”(引用字符串)中为null值属性返回null :(这是州和闭期日期属性)

{"firstname":"abc","lastname":"def","state":null,"birthdate":"1992-05-25T00:00:00","closeddate":null}

GET方法之一api看起来像:

[HttpGet]
public HttpResponseMessage GetUserInfo(int userid)
{
        var user = _userService.GetUserInfo(userid);
        var statusCode = _userService.StatusCode;
        var errorCode = _userService.ErrorCode;

        return _statusCode == HttpStatusCode.OK
          ? Request.CreateResponse(_statusCode, account)
          : Request.CreateResponse(_statusCode, errorCode);
}

1 个答案:

答案 0 :(得分:0)

由于您要求提供意见,这里有来自SlashDB API创建者的意见:如有疑问,请将其删除。

在JSON数据格式中,可以从结果中省略具有空值的键。

以下API调用返回一条客户记录,该记录在公司字段中没有值:

XML格式更正式,因为您可以定义一个模式,该模式规定了允许的数据形状。特别地,元素(标签)可以具有minOccurs = 0属性以指示其可选性,和/或nillable = True以指示标签可以存在而没有值(即)。为了完整性,这里有相同的XML及其架构记录: