私はこのようなJSONオブジェクトを持っています。カスタムJSONオブジェクトをVB.NETオブジェクトに変換する
{
"Errors":{
"err1":[
//* Array of err1 objects
],
"err2":[
//* Array of err2 objects
]
}
}
このオブジェクトを使用して、リクエストで見つかったエラーをPHPページに報告します。私はvb.Netオブジェクトに、そのオブジェクトを変換したい
はこのように、基本的に宣言:私の実装は十分に良好であれば、私は知らない
Public Class WebErrContainer
Public Errors as List(Of IWebError)
End Class
Public Class Err1
Implements IWebError
End Class
Public Class Err2
Implements IWebError
End Class
Public Interface IWebError
End Interface
、私はvb.netに比較的新しいですOOPでの私のスキルは少し低いです。
それは...私は状況を説明したと思います。
さらに詳しい情報が必要な場合は、私はそれを提供します。
お手数をおかけしていただきありがとうございます。ありがとう。
PD:私は現在NewtonsoftのJSON.Netライブラリを使用しています。 VB.NETでJSONを扱うには、他のライブラリやメソッドをお勧めします。
私はこれを行うことによって、状況を解決:
Public Sub New(ByVal jsonText As String)
Dim jObject As JObject = jObject.Parse(jsonText)
Dim jErrors As JToken = jObject("Errors")
Dim jS = New JsonSerializer()
' This is the "temporal" dictionary that stores the errors like they are
' stored in JSON
Dim jsErrs As New Dictionary(Of String, List(Of Object))
' List that is going to be passed to the "Errors" field in the class
Dim lErrors As New List(Of IWebError)
jsErrs = jS.Deserialize(New JTokenReader(jErrors), jsErrs .GetType)
If Not jsErrs Is Nothing Then
For Each errType As KeyValuePair(Of String, List(Of Object)) In jsErrs
For Each Err As Object In errType.Value
lErrors .Add(jS.Deserialize(New JTokenReader(Err), Type.GetType(errType.Key)))
Next
Next
End If
Me.Errors = lErrors
End Sub
のようにそれをやりました。 答えはsvickとJayeshです。 – saggio09