我有一个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);
}
答案 0 :(得分:0)
由于您要求提供意见,这里有来自SlashDB API创建者的意见:如有疑问,请将其删除。
在JSON数据格式中,可以从结果中省略具有空值的键。
以下API调用返回一条客户记录,该记录在公司字段中没有值:
XML格式更正式,因为您可以定义一个模式,该模式规定了允许的数据形状。特别地,元素(标签)可以具有minOccurs = 0属性以指示其可选性,和/或nillable = True以指示标签可以存在而没有值(即)。为了完整性,这里有相同的XML及其架构记录: