一些 JSON 序列化null
程序返回一个空字符串数据字段,例如
{
"searchtext": null,
"moretext": "contains something",
"bookdate": 1377468000000,
"empid": 12345,
"listtype": 1
}
我正在使用 SuperObject 创建一个 ISuperObject:
var
FJSONRequest: ISuperObject;
then
FJSONRequest := SO(Request.Content); // Webservice request
这将返回一个带有包含文本的字符串的对象'null'
。
显然这是因为 SuperObject 不关心引号("searchtext": a
给出与 相同的结果"searchtext": "a"
)。
在我深入研究 980 行标记器例程之前,有没有人有解决方案?
我正在考虑(或者/或):
将空数据字段留在 JSON 对象之外
返回一个空字符串
如果一切都失败了,我仍然可以做
FJSONRequest := SO(StringReplace(Request.Content,': null,',':,',[rfReplaceAll]));
因为我只需要处理来自我们一位开发人员的应用程序的请求,但这并不是万无一失的。
(不,他不能抑制,null
因为Mono 处理他的 datacontract 的方式存在错误。)
顺便说一句,我正在经历这里提到的行为,但是在 SuperObject 代码的另一部分,所以这种解决方法不能完成这项工作。