2016-10-09 7 views
2

私はゲームランチャーのWebサーバーからデータをデシリアライズしようとしています。
API docsは私にjson形式のデータを提供していますが、私は与えられたデータを読み込み、プレーヤーにログインするための変数として格納できるように苦労しています。私もいくつかのことを試しましたが、今はちょっと立ち往生しています。

通常、サーバーからの応答は次のように希望:私はどれJsonをデシリアライズするVB.NET

Public Class TTRServerResponse 
    Public Property success As String 
    Public Property eta As String 
    Public Property position As String 
    Public Property queueToken As String 
    Public Property cookie As String 
End Class 

を保存する変数を

Dim result() As TTRServerResponse = JsonConvert.DeserializeObject(Of TTRServerResponse())(responseFromServer) 

クラス:データをデシリアライズする

{"success":"true","gameserver":"gameserver-alpha.toontownrewritten.com","cookie":"deadbeefdeafbeef0x123"} 

コード私が台無しにしたアイデアや何をすべきか?ありがとう、ベン。

EDITは:私もちょうどresultを返すことで、私の他のサブに誤ったデータを返していました

Dim result As TTRServerResponse = JsonConvert.DeserializeObject(Of TTRServerResponse) (responseFromServer)

:最後に私は私の結果を変更するために必要な、それを考え出しました。私がする必要があったのは返品result.successでした。私は今、より良い理解を持っています。

+0

あなたのクラスを 'Serializable'に設定しようとしましたか?上にあるものによれば、これは欠けています...クラスの先頭にこれを追加してください。 _' ... – Codexer

+1

あなたは問題を記述しなかったか質問しました – Plutonix

+3

複数のjsonオブジェクトを取得していますか、 1?上記の例では、サンプルjson文字列は単一オブジェクトなのでデシリアライズしないため、オブジェクトの配列にデシリアライズしようとしています。あなたのクラス構造はjson構造体と一致しなければなりません_exactly_ – soohoonigan

答えて

1

JSONを配列に逆シリアル化しようとしていますが、あなたの例では単一のオブジェクトです。だから、

Dim responseFromServer As String 

は、あなたが更新する必要があり、あなたがするリンクのドキュメントによると、単一のオブジェクトであることを仮定され、

{"success":"true","gameserver":"gameserver-alpha.toontownrewritten.com","cookie":"deadbeefdeafbeef0x123"} 

に等しいと仮定し

単一のオブジェクトを配列に並べ替えてデシリアライズするコード

Dim result As TTRServerResponse = JsonConvert.DeserializeObject(Of TTRServerResponse)(responseFromServer) 
関連する問題