リストにいくつかのJsonデータを逆シリアル化しようとしていますが、リストはデータを返しません。Jsonリストのオブジェクトをデシリアライズするとnullが返される
私が使用していますJSON文字列の例がある
{
"sequence":82334,
"bids":
[
["7660","10.02477743",11],
["7600","0.01",1],
["7500","0.01",1]
],
"asks":
[
["7672.57","0.63979186",1],
["7673.64","1",1],
["7678.95","1",1]
]
}
は、私は私に
public class ProductOrderBook
{
public int sequence { get; set; }
public List<List<object>> bids { get; set; }
public List<List<object>> asks { get; set; }
}
を与えたオブジェクトのクラスを生成するのにjson2csharpを使用し、これは私の私の方法であり、 jsonを逆シリアル化するために使用します。
public static async Task<List<ProductOrderBook>> GetProductOrderBook()
{
string ts = GetNonce();
string method = "/products/BTC-USD/book?level=2";
string sig = GetSignature(ts, "GET", method, string.Empty);
List<ProductOrderBook> productOrderBooks;
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(baseURL);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("CB-ACCESS-KEY", apiKey);
client.DefaultRequestHeaders.Add("CB-ACCESS-SIGN", sig);
client.DefaultRequestHeaders.Add("CB-ACCESS-TIMESTAMP", ts);
client.DefaultRequestHeaders.Add("CB-ACCESS-PASSPHRASE", passphrase);
client.DefaultRequestHeaders.Add("User-Agent", userAgent);
HttpResponseMessage response = client.GetAsync(method).Result;
string json = await response.Content.ReadAsStringAsync();
productOrderBooks = JsonConvert.DeserializeObject<List<ProductOrderBook>>(json);
}
return await Task.Run(() => productOrderBooks);
}
応答文字列で有効なJsonが返されました。なぜproductOrderBooksリストにデータがないのかわかりません。私は入札を保持し、データを尋ねると、あなたの投稿をJSONを1として
public List<List<object>> bids { get; set; }
public List<List<object>> asks { get; set; }
あなたのJSONは、単一の製品のオーダーブックですが、あなたがそれらの配列をdeseralizeしようとしているこれが事実であるように見えますか? –
それはあなたの完全なJSONですか、あるいは外側の配列またはラッパーオブジェクトがありますか? –
こんにちはサムとブライアン、時間を割いてくれてありがとう。うん、それは完全なJsonのラッパーです。 Json2CSharpによって与えられたオブジェクトクラスのリストがあり、そこではちょっと混乱してしまったことを指摘してくれてありがとうございます。 –