2012-03-02 8 views
0

ここでは、JSONです:JSON.NET逆シリアル化 - クラスを特定できませんか?

{ 
    "status": "live", 
    "responses": 10, 
    "questions": { 
    "ZuGnqOpd3w": { 
     "title": "Sample Title", 
     "type": "threed-grid", 
     "id": "ZuGnqOpd3w", 
     "label": "Sample Label." 
     } 
    } 
} 

とクラス。私はそれをデシリアライズしようとすると

Public Class Survey 
    Public Property status As String 

    Public Property responses As Integer 

    Public Property questions() As jQuestion() 

End Class 

Public Class jQuestion 
    Public Property Title as String 
    ...... 
End Class 

私は次のエラーを取得する: は「jQuestion []」型にJSONオブジェクトをデシリアライズすることはできません。

私のクラスを正しく構成するのに役立つ人はいますか?

答えて

0

私はjson.netにはあまりよく慣れていませんが、jsonオブジェクトがあなたのクラスに基づいて正しくフォーマットされていないようです。 Questionsが配列であるので、jsonの値は、あなたがデシリアライズしようとしているjsonフォーマットの検証時に、あなたは.NETのオブジェクトを作成することでカンニングしてから見ることができました将来的には[]

{ 
    "status": "live", 
    "responses": 10, 
    "questions": [ 
     { 
     "title": "Sample Title", 
     "type": "threed-grid", 
     "id": "ZuGnqOpd3w", 
     "label": "Sample Label." 
     }, 
     { 
     "title": "Sample Title 2", 
     "type": "threed-grid 2", 
     "id": "ZuGnqOpd3w 2", 
     "label": "Sample Label. 2" 
     } 
    ] 
} 

角括弧で囲む必要がありますあなたがjson.netを使ってそれらを直列化すると、彼らはどのように見えますか?

+0

お返事ありがとうございます。私はオンライン調査プロバイダからJSON応答を非直列化していますので、残念ながらJSONの構造を制御することはできません。 – Tom

+0

@Tom申し訳ありませんが、私はそれを行うOOBの方法はわかりません。 'questions'配列は角括弧で囲まれていないので、手作業で適切な' json'フォーマットにする必要があります。私はあなたが解決策を知っていることに興味があります。乾杯! – Craig

関連する問題