Reputation: 29
Below is the json text I receive for a test web service and looking for how it each record field could be displayed .
{"records":[ {"id":"10","email":"[email protected]","name":"Dot"},{"id":"855","email":"webcastpoa0@myhost","name":"name_0"},{"id":"856","email":"webcastpoa1@myhost","name":"name_1"},{"id":"857","email":"webcastpoa2@myhost","name":"name_2"},{"id":"858","email":"webcastpoa3@myhost","name":"name_3"},{"id":"859","email":"webcastpoa4@myhost","name":"name_4"},{"id":"860","email":"webcastpoa5@myhost","name":"name_5"},{"id":"861","email":"webcastpoa6@myhost","name":"name_6"},{"id":"862","email":"webcastpoa7@myhost","name":"name_7"},{"id":"863","email":"webcastpoa8@myhost","name":"name_8"},{"id":"864","email":"webcastpoa9@myhost","name":"name_9"},{"id":"865","email":"webcastpoa10@myhost","name":"name_10"},{"id":"866","email":"webcastpoa11@myhost","name":"name_11"},{"id":"867","email":"webcastpoa12@myhost","name":"name_12"},{"id":"868","email":"webcastpoa13@myhost","name":"name_13"},{"id":"869","email":"webcastpoa14@myhost","name":"name_14"},{"id":"870","email":"webcastpoa15@myhost","name":"name_15"},{"id":"871","email":"webcastpoa16@myhost","name":"name_16"},{"id":"872","email":"webcastpoa17@myhost","name":"name_17"},{"id":"873","email":"webcastpoa18@myhost","name":"name_18"},{"id":"874","email":"webcastpoa19@myhost","name":"name_19"},{"id":"875","email":"webcastpoa20@myhost","name":"name_20"},{"id":"876","email":"webcastpoa21@myhost","name":"name_21"},{"id":"877","email":"webcastpoa22@myhost","name":"name_22"},{"id":"878","email":"webcastpoa23@myhost","name":"name_23"},{"id":"879","email":"webcastpoa24@myhost","name":"name_24"},{"id":"880","email":"webcastpoa25@myhost","name":"name_25"},{"id":"881","email":"webcastpoa26@myhost","name":"name_26"},{"id":"882","email":"webcastpoa27@myhost","name":"name_27"},{"id":"883","email":"webcastpoa28@myhost","name":"name_28"},{"id":"884","email":"webcastpoa29@myhost","name":"name_29"},{"id":"885","email":"webcastpoa30@myhost","name":"name_30"},{"id":"886","email":"webcastpoa31@myhost","name":"name_31"},{"id":"887","email":"webcastpoa32@myhost","name":"name_32"},{"id":"888","email":"webcastpoa33@myhost","name":"name_33"},{"id":"889","email":"webcastpoa34@myhost","name":"name_34"},{"id":"890","email":"webcastpoa35@myhost","name":"name_35"},{"id":"891","email":"webcastpoa36@myhost","name":"name_36"},{"id":"892","email":"webcastpoa37@myhost","name":"name_37"},{"id":"893","email":"webcastpoa38@myhost","name":"name_38"},{"id":"894","email":"webcastpoa39@myhost","name":"name_39"},{"id":"895","email":"webcastpoa40@myhost","name":"name_40"},{"id":"896","email":"webcastpoa41@myhost","name":"name_41"},{"id":"897","email":"webcastpoa42@myhost","name":"name_42"},{"id":"898","email":"webcastpoa43@myhost","name":"name_43"},{"id":"899","email":"webcastpoa44@myhost","name":"name_44"} ]}
I have the following code so far.
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.Net;
using System.IO;
using Newtonsoft.Json;
WebClient client = new WebClient();
string reply = client.DownloadString("http://192.168.1.115/php_poa/test_select.php");
MessageBox.Show(reply);
records p1 = JsonConvert.DeserializeObject<records>(reply);
MessageBox.Show(p1.ToString());
class records
{
public string id { get; set; }
public string email { get; set; }
public string name { get; set; }
}
And would like a for loop to process each record.
THanks
Upvotes: 0
Views: 78
Reputation: 2714
You need to use next class for deserialization:
class MyResponse
{
public List<Records> Records { get; set; }
}
class Records
{
public string Id { get; set; }
public string Email { get; set; }
public string Name { get; set; }
}
And now you can deserialize your web response:
MyResponse myResponse = JsonConvert.DeserializeObject<MyResponse>(reply);
Upvotes: 1
Reputation: 1915
to iterate through a loop you can do something like this
JObject records = JObject.Parse(json);
foreach (var record in obj["records"])
{
records p1 = JsonConvert.DeserializeObject<records>(reply);
}
although i would suggest creating a constructor for your class instead of using DeserializeObject
like this
public Records(JToken toekn)
{
Id = (string)toekn["Id "];
Email = (string)toekn["Email "];
Name = (string)toekn["Name "];
}
and use
Records record = new Records(record)
instead of DeserializeObject
inside the loop
Upvotes: 0
Reputation: 14292
Just use List<record>
instead. You won't require to iterate it through loop.
Example:
List<records> p1 = JsonConvert.DeserializeObject<List<records>>(reply);
Remember to add following namespace at top
using System.Collection.Generic;
Upvotes: 1