[英]How to DeserializeObject with Newtonsoft.Json?
我正在將Json字符串反序列化為Object。這是我的Json字符串需要反序列化。
{
"response": {
"total_results": 33,
"trades": [
{
"tid": "E231958349",
"num": 1,
"num_iid": 3424234,
"price": 200.07
}]
}
}
我已經定義了一個響應模型。這是我的代碼:
public class ResponseModel
{
public int total_results { set; get; }
public List<TradeModel> trades{ set; get;}
}
我還定義了交易模型:
public class TradeModel
{
#region Attribute
#region oid
private int tid;
public int Oid
{
get { return tid; }
set { tid = value; }
}
#endregion
#endregion
}
這是我的反序列化代碼:
public static ResponseModel MapResonseJsonToModel(string json)
{
ResponseModel orderModel = new ResponseModel();
orderModel = JsonConvert.DeserializeObject<ResponseModel>(json);
return orderModel;
}
我的問題是:為什么每次total_results返回0,而交易返回null?正確的是33,而不是空交易對象!
由於您的JSON格式,JsonConvert將在ResponseModel
尋找一個名為response
的屬性。 嘗試將JSON更改為僅作為響應的值,或者創建另一個類似這樣的類:
public class ResponseContainer
{
public ResponseModel response {get;set;}
}
這里的問題可能與您的JSON格式有關。 您的JSON具有response
作為最外部的項目,在內部,它具有兩個子項目,即total_results
和trades
。 為了使以上代碼正常工作,您的JSON應該如下所示:
{
"total_results": 33,
"trades": [
{
"tid": "E231958349",
"num": 1,
"num_iid": 3424234,
"price": 200.07
}]
}
如果您打算保持原樣,則將模型更改為Mike在回答中所說的。 您可以在此處選擇兩種方式之一。
希望這個清除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.