Как использовать ответ JSON в приложении wpf

Мое приложение wpf взаимодействует с php web api. Сначала я публикую некоторые данные в веб-API и получил JSON резонанс. На стороне сервера php скрипт только что подготовил массив и json_encode(arrayName)отправлено клиенту. На моей стороне клиента я использую следующий код

using (WebResponse jsonResponse = request.GetResponse())
{
// Do something with response
StreamReader streamReader = new StreamReader(jsonResponse.GetResponseStream());
String responseData = streamReader.ReadToEnd();

MessageBox.Show(responseData);
}

в окне сообщения я могу видеть все данные, отправленные сервером. Теперь я понятия не имею, как назначить эти данные локальным переменным? Пожалуйста, ведите меня.

http://i.imgur.com/1Qzds8G.png

РЕДАКТИРОВАТЬ

Ответ отображается в окне сообщения:

[{"response":"true","user_id":"250","username":"sapan108"}]'

После Google, я создал следующий класс: —

public class UserData
{
public string response { get; set; }
public string error { get; set; }
public int user_id { get; set; }
public string username { get; set; }
}

Теперь, как назначить JSON ответ на эти переменные.

Примечание: из-за меньшей репутации невозможно разместить изображение напрямую. Приносим извинения за неудобства.

1

Решение

1) Вы должны создать класс для представления данных JSON (http://json2csharp.com/)

public class RootObject
{
public string response { get; set; }
public string user_id { get; set; }
public string username { get; set; }
public string current_balance { get; set; }
public string message { get; set; }
public string outh_token { get; set; }
public List<string> lastFiveSpinNumbers { get; set; }
}

2) Вы должны десериализовать данные json в класс (самый простой способ — использовать библиотеку Json.NET — http://www.newtonsoft.com/json)

using (WebResponse jsonResponse = request.GetResponse())
{
// Do something with response
StreamReader streamReader = new StreamReader(jsonResponse.GetResponseStream());
String responseData = streamReader.ReadToEnd();
var myData = JsonConvert.DeserializeObject<List<RootObject>>(responseData);
// process your data
foreach (var rootObject in myData)
{
string response = rootObject.response;
// ...
}
}
0

Другие решения

Используйте Newtonsoft Json для десериализации ответа, например:

public class UserData
{
public string response { get; set; }
public string error { get; set; }
public int user_id { get; set; }
public string username { get; set; }
}UserData data = JsonConvert.DeserializeObject<UserData>(response);
0

По вопросам рекламы [email protected]