Это на самом деле довольно легко.Я проиллюстрирую выполнение вызова службы REST и анализ данных JSON в класс.Тогда я думаю, что вы сможете выполнить конкатенацию строк и отобразить их самостоятельно.
Начните с добавления ссылки на сборку System.ServiceModel.Web, которая предоставит вам доступ к DataContractJsonSerializer. в пространстве имен System.Runtime.Serialization.Json.
Затем создайте класс для представления JSON.Используйте автоматически реализованные свойства, имена которых соответствуют JSON, возвращаемому службой:
public class ExchangeRate
{
public string lhs { get; set; }
public string rhs { get; set; }
public string error { get; set; }
public string icc { get; set; }
}
Я предполагаю, что вы хотите получать данные при нажатии кнопки, поэтому вот небольшое приложение с обработчиком нажатия кнопки.
using System;
using System.Net;
using System.Runtime.Serialization.Json;
using System.Windows;
using Microsoft.Phone.Controls;
namespace WP7JsonClient
{
public partial class MainPage : PhoneApplicationPage
{
public MainPage()
{
InitializeComponent();
}
private void button1_Click( object sender, RoutedEventArgs e )
{
var client = new WebClient();
// Callback function written in-line as a lambda statement
client.OpenReadCompleted +=
( s, eargs ) =>
{
var serializer = new DataContractJsonSerializer( typeof( ExchangeRate ) );
var exchangeRate = (ExchangeRate)serializer.ReadObject( eargs.Result );
// display exchange rate data here...
};
var uri = new Uri( "http://www.google.com/ig/calculator?hl=en&q=10USD=?DKK" );
client.OpenReadAsync( uri );
}
}
}
Я написал встроенный метод асинхронного обратного вызова как лямбда-оператор, но вы могли бы написать его так же легко, как отдельный метод.После вызова, чтобы сериализатор прочитал объект, данные JSON теперь доступны как экземпляр вашего класса сериализации JSON (ExchangeRate), так что вы можете работать с этим объектом напрямую, выполнять привязку данных с его свойствами и т. Д.