2017-09-04 23 views
0

我想从嵌套对象序列化一些JSON到一个字符串。不过我有对象JSON使用VB.NET隔离

Class RequestTaxes 
    Public Property usrname As String 
    Public Property pswrd As String 
    Public Property isAudit As Boolean 
    Public Property currn As String 
    Public Property lines() As TaxLines 
End Class 


Class TaxLines 
    Public Property debCredIndr As Integer 
    Public Property goodSrvCd As String 
    Public Property grossAmt As Double 
    Public Property lnItmId As String 
    Public Property qnty As Double 
    Public Property trnTp As Integer 
    Public Property accntDt As DateTime 
    Public Property custVendName As String 
    Public Property custVendCd As String 
    Public Property orgCd As String 
End Class 

内与阵列的问题然而,当我尝试序列化的字符串传递给API,因为围绕“行”列表中的方括号缺少它被拒绝。

有没有人知道在使用Newtonsoft时要把这些放在哪里?

Dim Settings As New JsonSerializerSettings 
Settings.NullValueHandling = NullValueHandling.Ignore 
Dim InputString As String = JsonConvert.SerializeObject(message, Settings) 

“消息”载型RequestTaxes的填充物

+0

什么是确切的错误信息?我不认为这真的必须与括号 – Plutonix

+1

这可能是[不能Json反序列化Youtube数据与VB.net](https://stackoverflow.com/a/45388173/3744182),但我们需要看到JSON和包含消息,回溯,异常类型和内部异常的完整的'ToString()'输出。 – dbc

+1

从这个问题来看,它与我们所看到的密切相关,但可以说不是一个骗局,因为这是序列化与反序列化。不过很好找。 –

回答

0

其实我需要做的

Public Property lines As List(of TaxLines) 
1

我觉得你有你的属性声明有点过。

Public Property lines() As TaxLines

相当于

Public Property lines As TaxLines

也就是说你TaxLines只有一个实例,而不是一个数组。

您需要在该行的结束,像这样加上括号:

Public Property lines() As TaxLines()