2017-09-04 81 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()