-
-
-
-
We Recommend These Resources
- This post is about parsing data by hand coming back from Azure Mobile Services.
- It does not rely on the MobileServiceCollectionView to populate controls with data.
- Use the code below if you want more control over the parsing of data.
| Problem | In
a previous post, a friend of mine wanted to manually populate a Windows
8 GridView client using data coming back from Azure Mobile Services. |
- Use this technique to manually parse JSON data coming back from Azure Mobile Services
- It gives you fine grained control over the parsing of data coming back.
| The goal | You
want to manually populate a gridview or similar control by hand. In
other words, you want to parse JSON manually, one record at a time.
Rather than getting an entire collection, you can use this technique to
parse individual columns and rows. |
| Solution | Use
the JSONArray technique outlined below. Use the GetData() code below in
the public MySampleDataGroup(JsonObject currGroup) constructor. |
- You will need to edit the code as you see below.
- There is the application key
- There is the DNS name
- Both of these items will differ with your own version of Azure Mobile Services
| rZYYXzOAKgiukahLDniLPeydiMpefy22 | You get this from the Azure Mobile Services Portal. It is the application key. |
| https://brunotodoservice.azure-mobile.net/tables/TodoItem | You get this from the Azure Mobile Services Portal. It is the DNS name you get when you create the service. |
| text | A column in your SQL Server Table. |
The Code to parse data coming back from Azure Mobile Services
public async void GetData()
{
// Part of the namespace "System.Net.Http"
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("X-ZUMO-APPLICATION", "rZYYXzOAKgiukahLDniLPeydiMpefy22");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//
// Asynchronously call into the web service
//
var response = await client.GetAsync(
new Uri("https://brunotodoservice.azure-mobile.net/tables/TodoItem"));
//
// Read the data as a big string
//
var result = await response.Content.ReadAsStringAsync();
//
// Parse the JSON data
//
var parsedResponse = JsonArray.Parse(result);
//
// Convert to a JSON array
//
JsonArray array = parsedResponse;
IJsonValue outValue;
foreach (var item in array)
{
var obj = item.GetObject();
// Extract the text key. Assume there is a “text” column coming back
if (obj.TryGetValue("text", out outValue))
{
string textValue = outValue.GetString();
}
}
}
- For Andrew:
- The best way to learn all the details of using Azure Mobile Services is to do a lab in the Windows Azure Training Kit.
Published at DZone with permission of Bruno Terkaly, author and DZone MVB. (source)(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)