You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

反序列化POCO类时如何忽略JSON空数组?(基于Hl7.Fhir.STU3)

解决Hl7.Fhir.STU3反序列化空数组报错问题

方法一:配置解析器允许空集合

Hl7.Fhir.STU3的FhirJsonParser支持通过设置开启空集合兼容,只需实例化解析器时传入带AllowEmptyCollections=true的ParserSettings:

var settings = new ParserSettings
{
    AllowEmptyCollections = true
};
var parser = new FhirJsonParser(settings);
var resource = parser.Parse<YourResourceType>(jsonContent);

这个配置会让解析器忽略空数组的校验,不会抛出DeserializationFailedException。

方法二:临时修改返回的JSON内容

如果服务器返回的字段不符合FHIR规范(比如规范要求该数组至少一个元素,但服务器返回空数组),可以先手动移除空的supportingInfo字段再反序列化:

// 用Newtonsoft.Json处理JSON(需要引入Newtonsoft.Json包)
var jObj = Newtonsoft.Json.Linq.JObject.Parse(jsonContent);
if (jObj["supportingInfo"] is Newtonsoft.Json.Linq.JArray arr && arr.Count == 0)
{
    jObj.Remove("supportingInfo");
}
var modifiedJson = jObj.ToString();

var parser = new FhirJsonParser();
var resource = parser.Parse<YourResourceType>(modifiedJson);

内容的提问来源于stack exchange,提问作者Steve Borman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 02:05:24