Before going to start parsing json. You must
be add reference to both "system.runtime.serialization" and "system.servicemodel.web".
And in this sample i am using http://json2csharp.com/ for
simply building a C# class from JSON formated string. And its very important is
to make class as similar to Json objects. Other wise we will never parse date
properly.
This is time I am going to cover DataContract JSON Serialization using DataContractJsonSerializer. DataContract
JSON Serialization is mostly used by Windows Communication Foundation (WCF)
services, but I will try to apply this approach to Windows Phone 7
environment.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using System.Runtime.Serialization.Json;
using System.IO;
using System.Text;
using System.Runtime.Serialization;
namespace Json_Parsing
{
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
string jsonString = @"{
'message': 'Success',
'status': '0',
'paramss': [
{
'redirect_url': 'https //www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=EC-87B5001D184562D',
'ack': '',
'transactionTimestamp': 'Thu May 12 06 45 57 EDT 2011'
},
{
'redirect_url': 'https //www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=EC-87B5001D184562D',
'ack': 'Success',
'transactionTimestamp': 'Thu May 12 06 45 57 EDT 2011'
},
{
'redirect_url': 'https //www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=EC-87B5001D184562D',
'ack': 'Success',
'transactionTimestamp': 'Thu May 12 06 45 57 EDT 2011'
},
{
'redirect_url': 'https //www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=EC-87B5001D184562D',
'ack': 'Success',
'transactionTimestamp': ''
},
{
'redirect_url': '',
'ack': 'Fail',
'transactionTimestamp': 'Thu May 12 06 45 57 EDT 2011'
},
{
'redirect_url': 'https //www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=EC-87B5001D184562D',
'ack': 'Success',
'transactionTimestamp': 'Thu May 12 06 45 57 EDT 2011'
}
]
}"; ;
RootObject childlist = new RootObject();
RootObject childlistonly = new RootObject();
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
DataContractJsonSerializer ser = new DataContractJsonSerializer(childlist.GetType());
childlist = ser.ReadObject(ms) as RootObject;
string teststring = "";
foreach (var d in childlist.paramss)
{
teststring = teststring + "" + d.redirect_url + "\n" + "\n" + "\n";
}
MessageBox.Show("Your Url's are:\n\n" + teststring);
ms.Close();
}
}
public class Paramss
{
public string redirect_url { get; set; }
public string ack { get; set; }
public string transactionTimestamp { get; set; }
}
public class RootObject
{
public string message { get; set; }
public string status { get; set; }
public List<Paramss> paramss { get; set; }
}
}

Join the conversation! Your thoughts help the community grow.