В настоящее время я пытаюсь десериализовать следующий вывод JSON в silverlight без десериализатора javascript. Я слышал, что есть способ сделать это, используя JsonArray и LINQ, но я не могу понять это.
{
"Security": {
"CIK": "0000789019",
"Cusip": "594918104",
"Symbol": "MSFT",
"ISIN": "US5949181045",
"Valoren": "951692",
"Name": "Microsoft Corporation",
"Market": "NASDAQGS",
"CategoryOrIndustry": "TECHNOLOGY",
"Outcome": "Success",
"Message": null,
"Identity": null,
"Delay": 0
},
"StartDate": "7/1/2011",
"EndDate": "7/6/2011",
"Quotes": [{
"Date": "7/5/2011",
"Last": 26.03,
"Open": 26.1,
"LastClose": 26.02,
"High": 26.15,
"Low": 25.9,
"ChangeFromOpen": -0.07,
"PercentChangeFromOpen": -0.268,
"ChangeFromLastClose": 0.01,
"PercentChangeFromLastClose": 0.038,
"Volume": 37803000,
"SplitRatio": 1,
"LastAdjusted": 26.03,
"OpenAdjusted": 26.1,
"LastCloseAdjusted": 26.02,
"HighAdjusted": 26.15,
"LowAdjusted": 25.9,
"ChangeFromOpenAdjusted": -0.07,
"ChangeFromLastCloseAdjusted": 0.01,
"VolumeAdjusted": 37803000,
"NotTraded": false,
"Outcome": "Success",
"Message": null,
"Identity": null,
"Delay": 0
}, {
"Date": "7/1/2011",
"Last": 26.02,
"Open": 25.93,
"LastClose": 26,
"High": 26.17,
"Low": 25.84,
"ChangeFromOpen": 0.09,
"PercentChangeFromOpen": 0.347,
"ChangeFromLastClose": 0.02,
"PercentChangeFromLastClose": 0.077,
"Volume": 52914500,
"SplitRatio": 1,
"LastAdjusted": 26.02,
"OpenAdjusted": 25.93,
"LastCloseAdjusted": 26,
"HighAdjusted": 26.17,
"LowAdjusted": 25.84,
"ChangeFromOpenAdjusted": 0.09,
"ChangeFromLastCloseAdjusted": 0.02,
"VolumeAdjusted": 52914500,
"NotTraded": false,
"Outcome": "Success",
"Message": null,
"Identity": null,
"Delay": 0
}],
"Outcome": "Success",
"Message": null,
"Identity": "Cookie",
"Delay": 0.014001
}
Каков наилучший подход к выполнению чего-либо подобного, когда я пытаюсь извлечь Date
и LastAdjusted
из массива Quotes
и поместить каждый в свои массивы?
Вот как далеко я смог получить JSON в потоке:
downloader.OpenReadCompleted += new OpenReadCompletedEventHandler(downloader_OpenReadCompleted);
downloader.OpenReadAsync(serviceUri);
}
void downloader_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
if (e.Error == null)
{
Stream responseStream = e.Result;
//add code here
}
}