禁止从Json输出中清空对象列表

时间:2018-06-26 06:12:54

标签: json vb.net

我有一个Data类,它是根据贸易伙伴返回的XML手动填充的。大多数情况下,返回的数据只会填充我班级中的几个字段,其他字段设置为Nothing(null),然后使用

Dim settings As New JsonSerializerSettings
settings.NullValueHandling = NullValueHandling.Ignore

禁止显示没有数据的任何字段。所有这些都很好,但是我想知道如何在类中对对象列表进行相同或相似的处理。现在,如果其中之一没有数据,我仍然会得到这样的输出,它是一个空的json数组。

{
    "Txnum": "APO100000007R",
    "Dtsent": "20180625105938",
    "Txtyp": "A",
    "Location": [],
    "Terminationdata": [],
    "Responsestatus": {
        "prespc": "FTRAVQ059",
        "prespd": "LV1 IS REQUIRED "
    }
}

因此,我想知道是否以及如何避免在返回json字符串之前,先检查json字符串并去除“ Location”:[],

1 个答案:

答案 0 :(得分:0)

这是对我有用的代码。就像Side Node一样,ShouldSerialize“ PropertyName :()区分大小写,因此ShouldSerializeLocation()可以工作,而ShouldSerializelocation()则不区分大小写。在Vb代码中通常不区分大小写,因此请注意以防万一。 >

   <XmlElement([Namespace]:=SynchronossNS)>
    Public Property Location() As List(Of location)
        Get
            Return _location
        End Get
        Set
            _location = Value
        End Set
    End Property
    Public Function ShouldSerializeLocation() As Boolean
        Return _location.Count > 0

    End Function