自定义数据类型VB.net的序列化

时间:2017-11-17 13:57:28

标签: vb.net serialization

我有一个对象,我需要从VB.net序列化为JSON字符串,以便我可以通过我的REST API将其传递给Android设备。但是,我序列化的对象包含自定义数据类型,例如:

Public dbPtr As New DataBasePurchaseOrderPointer(listOfFields)

当我通过

传递此对象时
Dim serializer As New System.Web.Script.Serialization.JavaScriptSerializer()
Dim serializedObject = serializer.Serialize(obj)

所有字段都为空,例如

{"dbPtr":""}

所有对象的字段都包含" primitive"核心数据类型。例如,当您在字段中读取数据时,dbPtr显然很长。

有没有办法可以通过自定义序列化程序传递此对象,该序列化程序可以简单地复制对象字段的原始值,然后将它们序列化?

1 个答案:

答案 0 :(得分:0)

为了解决我的问题,我最终使用了一个“自定义”序列化类,它将获取对象字段的当前数据并将它们放入字典中。调用.ToString时,它会将字段数据转换为可填充到字典中的字符串。之后,REST API将字典序列化并将其作为JSON对象传递给我的Android应用程序。

    Public Function serializeObject(obj As Object) As Dictionary(Of String, String)
    Dim dict As New Dictionary(Of String, String)
    Dim properties As New ArrayList

    For Each prop As FieldInfo In obj.GetType.GetFields
        properties.Add(prop)
    Next

    For Each prop In properties
        Try
            dict.Add(prop.Name, prop.getValue(obj).ToString)
        Catch ex As Exception
            Console.WriteLine(ex.StackTrace)
        End Try
    Next

    Return dict

End Function