JSON Deserializing i C#/WP
Sitter och pular i Visual Studio 2010 och C# för windows phone, vilket jag har noll erfarenhet av sedan tidigare. Är framför allt webprogrammerare så är dålig på hela objekt-orienteringsbiten. Men för att komma till problemet, jag har alltså lyckats hämta json-data med en HttpWebRequest, och vill nu deserializa denna till ett objekt. Helst vill jag att objektet ska vara dynamiskt, så att jag inte behöver skriva en konstruktor för det i förväg.
Har dock lyckats med hjälp av biblioteket json.NET (http://json.codeplex.com/) och en konstruktor för mitt objekt att deserializa datan delvis, problemet är att min json innehåller sub-objekt:
json => hits => [0 => [w => "asdf", p => 2],
1 => [w => "gfdre", p=> 4]
],
time => 0.43,
num => 1,
page => "search"]
Så bortser jag från sub-objektet "hits" fungerar det, men jag vill naturligtvis även få med detta. "hits" kan alltså innehålla n värden där varje värde har en string w och en int p.
Vad är bästa sättet att göra denna deserializing på i c# för windows phone?
Hittade detta http://blog.ronnieroller.com/json-serialization-on-windows-ph... men fick det ej att fungera, vet inte hur jag ska använda det, plus att jag får ett error på att T är undefined.
Här är min kod just nu:
public struct Results
{
public string Hits;
public string Time;
public int Num;
public string Page;
public Results(string hits,string time, int num, string page)
{
Hits = hits;
Time = time;
Num = num;
Page = page;
}
}
private void ReadCallback(IAsyncResult asynchronousResult)
{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
using (StreamReader streamReader1 = new StreamReader(response.GetResponseStream()))
{
string resultString = streamReader1.ReadToEnd();
Results res = JsonConvert.DeserializeObject<Results>(resultString);
}
}
Det jag vill är att kunna hämta ett ord på detta sätt:
var myWord = deserialized["hits"][1]["w"];
Tack på förhand!