2016-11-20 15 views
1

:whatiから示すVisual Basic .NETのデシリアライズ

{ 
    "misterislukelis": { 
     "id": 44816005, 
     "name": "MisterisLukelis", 
     "profileIconId": 1391, 
     "summonerLevel": 30, 
     "revisionDate": 1479601967000 
} 

}

が、これはJSON「辞書」で集まったしかし、私は同じ通常のJSONとしてそれを読んでください知りませんファイル

ex。通常のJSONの:

[ { 
    "application_id":"1", 
    "application_package":"abc" 
    }, 
    { 
    "application_id":"2", 
    "application_package":"xyz" 
    } ] 

私はそれに見えたと同じくらいbecouse、一人一人がちょうど同じことを行いますが、私にとってそれは本当に

私のクラスの仕事doesntが、彼らはdiferently振る舞うそれを知りません:

Class summoner        'class opening 
    Public Property id As Integer   'summoner's id 
    Public Property name As String   'summoner's name 
    Public Property profileIconId As Integer 'profile icon id 
    Public Property summonerLevel As Integer 'summoner's level 
End Class         'end of a class 

と、これはJSONデシリアライズする必要があります:私はこれをすべきだったとして

Dim ser As JavaScriptSerializer = New JavaScriptSerializer()   
Dim jsonData As String = readData(URLadress)       'get  json file in to txt(i have function fo it, it works i triple checked) 
Dim summonerInfo As summoner = ser.Deserialize(Of summoner)(jsonData) 'deserialize json 
TextBox1.Text = summonerInfo.summonerLevel 'print out summoner level 

をうまく動作しますが、整数はどこで得られるはずですか?文字列はどこに得られるのですか?問題がどこにあるのか分かりません。

答えて

0

2番目の例はjson配列で、Deserialize jsonでうまく動作します。

Dim webtest As String = "[ { 
    ""application_id"":""1"", 
    ""application_package"":""abc"" 
    }, 
    { 
    ""application_id"":""2"", 
    ""application_package"":""xyz"" 
    } ]" 
     Dim serializer As New JavaScriptSerializer() 
     Dim webtestdeserialized As New List(Of cSummoner) 
     webtestdeserialized = serializer.Deserialize(Of List(Of cSummoner))(webtest) '(serializedResult) 

私はJSONオブジェクトも持っています。 JSONオブジェクトはObjectで取得しますが、cSummonerのリストでは取得しません。

Dim webtest As String = "{ 
     ""id"": 44816005, 
     ""name"": ""MisterisLukelis"", 
     ""profileIconId"": 1391, 
     ""summonerLevel"": 30, 
     ""revisionDate"": 1479601967000 
}" 
     Dim serializer As New JavaScriptSerializer() 
     Dim webtestdeserialized As Object 
     webtestdeserialized = serializer.DeserializeObject(webtest) 

私はあなたを助けることができます。

関連する問題