C# 如何在wpf应用程序中使用json响应

C# 如何在wpf应用程序中使用json响应,c#,php,json,wpf,C#,Php,Json,Wpf,我的wpf应用程序正在与php web api通信。首先,我将一些数据发布到web api并收到json响应。在服务器端,php脚本刚刚准备了一个数组,并将json\u encode(arrayName)发送到客户端。在我的客户端,我使用以下代码 using (WebResponse jsonResponse = request.GetResponse()) { // Do something with response

我的wpf应用程序正在与php web api通信。首先,我将一些数据发布到web api并收到json响应。在服务器端,php脚本刚刚准备了一个数组,并将
json\u encode(arrayName)
发送到客户端。在我的客户端,我使用以下代码

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

                MessageBox.Show(responseData);
            }
在消息框中,我可以看到服务器发送的所有数据。现在我不知道如何将这些数据分配给局部变量?请引导我

编辑

消息框中显示的响应为:-

[{"response":"true","user_id":"250","username":"sapan108"}]'
谷歌搜索后,我创建了以下类:-

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)您应该创建一个类来表示json数据()

公共类根对象
{
公共字符串响应{get;set;}
公共字符串用户_id{get;set;}
公共字符串用户名{get;set;}
公共字符串当前_余额{get;set;}
公共字符串消息{get;set;}
公共字符串outh_标记{get;set;}
公共列表LastFiveSpinNumber{get;set;}
}
2) 您应该将json数据反序列化到类中(最简单的方法是使用json.NET库-)

使用(WebResponse jsonResponse=request.GetResponse())
{
//做些有反应的事情
StreamReader StreamReader=新的StreamReader(jsonResponse.GetResponseStream());
String responseData=streamReader.ReadToEnd();
var myData=JsonConvert.DeserializeObject(responseData);
//处理数据
foreach(myData中的var rootObject)
{
字符串响应=rootObject.response;
// ...
}
}

使用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);
公共类用户数据
{
公共字符串响应{get;set;}
公共字符串错误{get;set;}
公共int用户_id{get;set;}
公共字符串用户名{get;set;}
}
UserData data=JsonConvert.DeserializeObject(响应);

将json数据作为文本发布。您是否有要分配数据的对象?谢谢您的回答。在最后一行(JsonConvert),我得到了一个错误。我需要在代码中添加哪些引用来使用JsonConvert?来自nuget。。。只需找到JSON.Net和install@user2941906:谢谢。我已成功安装Json.net。但现在反应已经改变了。在自动窗口中,由于我得到的更改,它是“[{”响应\“:”真“,”用户id \“:”350 \“,”用户名\“:”BDO123456 \“}]”exception@MohitGupta引发了什么样的异常?
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;
        // ...
    }
}
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);