I was trying to parse this using System.Json but I’m a bit confused how to use LINQ on this. The JSON string returned was something like:
{"SearchResults":[{"PageCount":"1"},
{"SEARCHVAL":"Result","CATEGORY":"Category1","X":"1","Y":"2"},
{"SEARCHVAL":"AnotherResult","CATEGORY":"Category1","X":"2","Y":"2"}]}
My code starts out as:
WebClient client = new WebClient();
client.OpenReadCompleted +=
new OpenReadCompletedEventHandler(client_OpenReadCompleted);
client.OpenReadAsync(uri);
then proceeds to the event handler where the result is stored in a Stream. Any example how to get just the SEARCHVALs, CATEGORYs, Xs and Ys from the stream using LINQ?
The
DataContractJSonSerializeris one way to do it but the presence of the “PageCount” object makes its use awkard. It looks to me as though someone has goofed on the server end, it would make much more sense to have the page count a property of the outer object and therefore leave the search results array to contain an homogeneous set of objects.The
System.Jsonnamespace is handy for this sort of JSON since its very flexible.Now you could use some Linq to get a set of objects out of this but first so we need to create a DTO type for it:-
So now the results query is:-
The
resultListisList<SearchResult>which you can now bind into some Xaml for display.