JSON StringをVB.netオブジェクトに変換して、JSON Stringのデータに簡単にアクセスしようとしています。JSON StringをVB.netオブジェクトに逆シリアル化する
私のJSON文字列は次のようになります。
Public Class Rootobject
Private _data1 As String
Public Property status As String
Public Property count As Integer
Public Property data() As Datum
End Class
Public Class Datum
Public Property clan_id As Integer?
Public Property nickname As String
Public Property id As Integer
End Class
:
{
"status": "ok",
"count": 4,
"data": [
{
"clan_id": 500002846,
"nickname": "Azrael",
"id": 500429872
},
{
"clan_id": null,
"nickname": "Azrael0",
"id": 500913252
},
{
"clan_id": 500028112,
"nickname": "Azrael0313",
"id": 504109422
},
{
"clan_id": null,
"nickname": "Azrael7",
"id": 501594186
}
]
}
今、私は
私のクラス定義があるVB.netオブジェクトにこの文字列をデシリアライズしようとしていますJSON String用にVisual Studio 2012が自動的に作成されます。
私は.JSONデシリアライザをデシリアライズしてみました:
Dim Testobject As Rootobject _
= Global.Newtonsoft.Json.JsonConvert.DeserializeObject(Of Rootobject)(JSON_String)
とJavaScriptSerializerで:
Dim serializer As New System.Web.Script.Serialization.JavaScriptSerializer()
Dim Testobject_2 As Rootobject = serializer.Deserialize(Of Rootobject)(JSON_String)
しかし、両方のケースで、私はちょうど「ステータス」と「カウント」へのアクセス権を取得することができています「データ」配列には適用されません。
は、私は、Visual Basicに新しいので、私はこの種の問題でJSONおよびデシリアライザや他の人々について多くを読んで、ほとんどのソリューションは、C#のためではなく任意のアイデア
VB.net
のためであるかIそれは間違っていたかも
は( 'パブリック・プロパティデータをしようとしました):
それとも、これも動作します。これに
:あなたの
Rootobject
クラスでは、この行を変更 現在のJSONオブジェクト(たとえば、{"name": "value"})を「System.Collec」タイプにデシリアライズできません型はJSON配列を必要とするため、一般的です.IList'1 [WoT_Tool.WoT_Tool + Datum] ' [1,2,3])正しくデシリアライズします。 このエラーを修正するには、JSONをJSON配列(たとえば[1,2,3])に変更するか、 – Azrael