Read Or Parse Or Deserialize JSON Using JavaScriptSerializer Class In C#
Hello,
Here's a simple demonstration on how to parse JSON data using .NET's JavaScriptSerializer class. Given the sample JSON data below:
I have created a model class that handles the deserialization of the JSON data into a C# object.
Given the model class and the JSON data, the function below will read the JSON using StreamReader and will deserialize it using the Deserialize() method of the JavaScriptSerializer object.
Here's a simple demonstration on how to parse JSON data using .NET's JavaScriptSerializer class. Given the sample JSON data below:
{
"catalog": {
"book": [
{
"id": "bk101",
"author": "Gambardella, Matthew",
"title": "XML Developer's Guide",
"genre": "Computer",
"price": "44.95",
"publish_date": "2000-10-01",
"description": "An in-depth look at creating applications
with XML."
},
{
"id": "bk102",
"author": "Ralls, Kim",
"title": "Midnight Rain",
"genre": "Fantasy",
"price": "5.95",
"publish_date": "2000-12-16",
"description": "A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world."
},
{
"id": "bk103",
"author": "Corets, Eva",
"title": "Maeve Ascendant",
"genre": "Fantasy",
"price": "5.95",
"publish_date": "2000-11-17",
"description": "After the collapse of a nanotechnology
society in England, the young survivors lay the
foundation for a new society."
},
{
"id": "bk104",
"author": "Corets, Eva",
"title": "Oberon's Legacy",
"genre": "Fantasy",
"price": "5.95",
"publish_date": "2001-03-10",
"description": "In post-apocalypse England, the mysterious
agent known only as Oberon helps to create a new life
for the inhabitants of London. Sequel to Maeve
Ascendant."
},
{
"id": "bk105",
"author": "Corets, Eva",
"title": "The Sundered Grail",
"genre": "Fantasy",
"price": "5.95",
"publish_date": "2001-09-10",
"description": "The two daughters of Maeve, half-sisters,
battle one another for control of England. Sequel to
Oberon's Legacy."
},
{
"id": "bk106",
"author": "Randall, Cynthia",
"title": "Lover Birds",
"genre": "Romance",
"price": "4.95",
"publish_date": "2000-09-02",
"description": "When Carla meets Paul at an ornithology
conference, tempers fly as feathers get ruffled."
},
{
"id": "bk107",
"author": "Thurman, Paula",
"title": "Splish Splash",
"genre": "Romance",
"price": "4.95",
"publish_date": "2000-11-02",
"description": "A deep sea diver finds true love twenty
thousand leagues beneath the sea."
},
{
"id": "bk108",
"author": "Knorr, Stefan",
"title": "Creepy Crawlies",
"genre": "Horror",
"price": "4.95",
"publish_date": "2000-12-06",
"description": "An anthology of horror stories about roaches,
centipedes, scorpions and other insects."
},
{
"id": "bk109",
"author": "Kress, Peter",
"title": "Paradox Lost",
"genre": "Science Fiction",
"price": "6.95",
"publish_date": "2000-11-02",
"description": "After an inadvertant trip through a Heisenberg
Uncertainty Device, James Salway discovers the problems
of being quantum."
},
{
"id": "bk110",
"author": "O'Brien, Tim",
"title": "Microsoft .NET: The Programming Bible",
"genre": "Computer",
"price": "36.95",
"publish_date": "2000-12-09",
"description": "Microsoft's .NET initiative is explored in
detail in this deep programmer's reference."
},
{
"id": "bk111",
"author": "O'Brien, Tim",
"title": "MSXML3: A Comprehensive Guide",
"genre": "Computer",
"price": "36.95",
"publish_date": "2000-12-01",
"description": "The Microsoft MSXML3 parser is covered in
detail, with attention to XML DOM interfaces, XSLT processing,
SAX and more."
},
{
"id": "bk112",
"author": "Galos, Mike",
"title": "Visual Studio 7: A Comprehensive Guide",
"genre": "Computer",
"price": "49.95",
"publish_date": "2001-04-16",
"description": "Microsoft Visual Studio 7 is explored in depth,
looking at how Visual Basic, Visual C++, C#, and ASP+ are
integrated into a comprehensive development
environment."
}
]
}
}
public class Book { public string id { get; set; } public string author { get; set; } public string title { get; set; } public string genre { get; set; } public string price { get; set; } public string publish_date { get; set; } public string description { get; set; } } public class Catalog { public List<Book> book { get; set; } } public class RootObject { public Catalog catalog { get; set; } }
private static void ReadBooks() { string executableLocation = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string xslLocation = Path.Combine(executableLocation, "books.json"); RootObject objBooks = new RootObject(); using (var reader = new StreamReader(xslLocation)) { var responseBody = reader.ReadToEnd(); var deserializer = new JavaScriptSerializer(); objBooks = deserializer.Deserialize<RootObject>(responseBody); } foreach (var item in objBooks.catalog.book) { Console.WriteLine("id: {0} \nauthor: {1} \ntitle: {2} \ngenre:{3} \nprice:{4} \npublish date: {5} \ndescription:{6}", item.id, item.author, item.title, item.genre, item.price, item.publish_date, item.description); Console.WriteLine("================================"); } }
Comments
Post a Comment