これを正しく逆シリアル化する方法を頭に入れようとしています。JSONを逆シリアル化しようとしたときにNullReferenceExceptionが発生する
{
"_note": "You are currently authenticated with the API using your OPSkins login session cookies.",
"status": 1,
"time": 1500460072,
"response": {
"AK-47 | Aquamarine Revenge (Battle-Scarred)": {
"op_7_day": 999,
"op_30_day": 932
},
"AK-47 | Aquamarine Revenge (Factory New)": {
"op_7_day": 2738,
"op_30_day": 2665
}
}
}
ここに私のクラス構造は、これは私がそれをデシリアライズしようとしている方法です
public class OpRoot
{
public string _note { get; set; }
public int status { get; set; }
public int time { get; set; }
public OpResponse response { get; set; }
}
public class OpResponse
{
public Dictionary<string, OpItem> items { get; set; }
}
public class OpItem
{
public int op_7_day { get; set; }
public int op_30_day { get; set; }
}
です:
OpRoot OpInstance = JsonConvert.DeserializeObject<OpRoot>(readerResponse);
私が代わりに一覧に辞書を変更しようとしましたが、 "items"オブジェクトを呼び出そうとしたときに同じ結果 "System.NullReferenceException"が返されました:
Console.WriteLine(OpInstance.response.items.Values);
問題は "OpResponse"クラスのコード内にあると思います。しかし、このコードの大半は以前は別のJSON構造で動作していました。
任意の助けいただければ幸い
EDIT:固定タイプミス
JSONが不正です.Jsonは常に '{' –
で始まります。JSON形式が正しくありません。カッコの位置を確認してください({})。 –
これは郵便のタイプミスで、今修正しました。 – multikus