dsjpqpdm620596
2015-03-22 07:17
浏览 351

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

My wpf application is communicating with php web api. First I post some data to web api and recieved json resonse. At server side php script just prepared an array and json_encode(arrayName)is sent to client. At my client side I am using following code

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

                MessageBox.Show(responseData);
            }

in the message box I am able to see all the data sent by server. Now I don't have any idea how to assign this data to local variables? Kindly guide me.

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

EDIT

Response shown in message box is :-

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

After Googling I created following class :-

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

Now How to assign json response to these variables.

Note: Due to less reputation unable to post image directly. Sorry for inconvenience.

图片转代码服务由CSDN问答提供 功能建议

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

  using(WebResponse jsonResponse = request.GetResponse())
 {
 //做一些带有响应的事情
 StreamReader streamReader =  new StreamReader(jsonResponse.GetResponseStream()); 
 String responseData = streamReader.ReadToEnd(); 
 
 MessageBox.Show(responseData); 
} 
   
 
 < 在消息框中,我能够看到服务器发送的所有数据。 现在我不知道如何将这些数据分配给局部变量? 请指导我。 
 
 

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

编辑

消息框中显示的响应是: - \ ñ

 <代码> [{ “响应”: “真”, “USER_ID”: “250”, “用户名”: “sapan108”}]'
   
 \  n 

在谷歌搜索之后,我创建了以下类: -

  public class UserData 
 {
 public string response {get; 组;  } 
公共字符串错误{get; 组;  } 
 public int user_id {get; 组;  } 
公共字符串username {get; 组;  } 
} 
   
 
 

现在如何为这些变量分配json响应。

注意:由于声誉较低无法 直接发布图片。 很抱歉给您带来不便。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dongsu4345 2015-03-22 07:34
    已采纳

    1) You should create class to represent json data (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) You should deserialize json data into class (the easiest way is to using Json.NET library - 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;
            // ...
        }
    }
    
    已采纳该答案
    打赏 评论
  • dongyuan1984 2015-03-22 07:35

    Use Newtonsoft Json to deserialize response like :

    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);
    
    打赏 评论

相关推荐 更多相似问题