[英]Deserialize netsted json string with json.net
jsonstring =
{
"10000010.SH": {
"TOTALTM": 45,
"STARTDATE": "20150209",
"UNDERLYINGWINDCODE": "510050.SH",
"EXE_MODE": "call",
"WIND_CODE": "10000010.SH",
"LASTTRADINGDATE": "20150325",
"EXE_ENDDATE": "20150325",
"MAINT_MARGIN": null,
"EXE_TYPE": "Euro",
"US_TYPE": "ETF",
"SETTLEMENTMETHOD": "asset",
"US_NAME": "50ETF",
"US_CODE": "510050"
},
"10000009.SH": {
"TOTALTM": 45,
"STARTDATE": "20150209",
"UNDERLYINGWINDCODE": "510050.SH",
"EXE_MODE": "call",
"WIND_CODE": "10000009.SH",
"LASTTRADINGDATE": "20150325",
"EXE_ENDDATE": "20150325",
"MAINT_MARGIN": null,
"EXE_TYPE": "Euro",
"US_TYPE": "ETF",
"SETTLEMENTMETHOD": "asset",
"US_NAME": "50ETF",
"US_CODE": "510050"
},
"10000003.SH": {
"TOTALTM": 45,
"STARTDATE": "20150209",
"UNDERLYINGWINDCODE": "510050.SH",
"EXE_MODE": "call",
"WIND_CODE": "10000003.SH",
"LASTTRADINGDATE": "20150325",
"EXE_ENDDATE": "20150325",
"MAINT_MARGIN": null,
"EXE_TYPE": "Euro",
"US_TYPE": "ETF",
"SETTLEMENTMETHOD": "asset",
"US_NAME": "50ETF",
"US_CODE": "510050"
},
"10000008.SH": {
"TOTALTM": 45,
"STARTDATE": "20150209",
"UNDERLYINGWINDCODE": "510050.SH",
"EXE_MODE": "call",
"WIND_CODE": "10000008.SH",
"LASTTRADINGDATE": "20150325",
"EXE_ENDDATE": "20150325",
"MAINT_MARGIN": null,
"EXE_TYPE": "Euro",
"US_TYPE": "ETF",
"SETTLEMENTMETHOD": "asset",
"US_NAME": "50ETF",
"US_CODE": "510050"
},
"10000006.SH": {
"TOTALTM": 45,
"STARTDATE": "20150209",
"UNDERLYINGWINDCODE": "510050.SH",
"EXE_MODE": "call",
"WIND_CODE": "10000006.SH",
"LASTTRADINGDATE": "20150325",
"EXE_ENDDATE": "20150325",
"MAINT_MARGIN": null,
"EXE_TYPE": "Euro",
"US_TYPE": "ETF",
"SETTLEMENTMETHOD": "asset",
"US_NAME": "50ETF",
"US_CODE": "510050"
}
}
為簡單起見,我只還原3個元素,實際上有100個以上。我只想提取鍵名,分別是“ 10000010.SH”,“ 10000003.SH”,“ 10000006.SH”,等等。 我將其反序列化為對象類型,但是如何提取所需的字符串?
Object result= JsonConvert.DeserializeObject(jsonstring);
還是有什么方便的方法? 謝謝!
var deser = new JavaScriptSerializer()
.Deserialize<Dictionary<string, Dictionary<string, string >>>(val);
var justDaily = deser["jsonstring"];
您可以在Json.Net上使用Linq
var keys = JObject.Parse(jsonstring)
.Properties()
.Select(x => x.Name)
.ToList();
您可以像這樣反序列化
Dictionary<dynamic, NumberSH> ser = JsonConvert.DeserializeObject<Dictionary<dynamic, NumberSH>>(jsonstr);
foreach(var k in ser)
{
Console.WriteLine(k.Key);
}
類結構看起來像
public class NumberSH
{
[JsonProperty("TOTALTM")]
public int TOTALTM { get; set; }
[JsonProperty("STARTDATE")]
public string STARTDATE { get; set; }
[JsonProperty("UNDERLYINGWINDCODE")]
public string UNDERLYINGWINDCODE { get; set; }
[JsonProperty("EXE_MODE")]
public string EXE_MODE { get; set; }
[JsonProperty("WIND_CODE")]
public string WIND_CODE { get; set; }
[JsonProperty("LASTTRADINGDATE")]
public string LASTTRADINGDATE { get; set; }
[JsonProperty("EXE_ENDDATE")]
public string EXE_ENDDATE { get; set; }
[JsonProperty("MAINT_MARGIN")]
public object MAINT_MARGIN { get; set; }
[JsonProperty("EXE_TYPE")]
public string EXE_TYPE { get; set; }
[JsonProperty("US_TYPE")]
public string US_TYPE { get; set; }
[JsonProperty("SETTLEMENTMETHOD")]
public string SETTLEMENTMETHOD { get; set; }
[JsonProperty("US_NAME")]
public string US_NAME { get; set; }
[JsonProperty("US_CODE")]
public string US_CODE { get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.