dsjpqpdm620596 2015-03-22 07:17
浏览 503
已采纳

如何在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.

  • 写回答

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;
            // ...
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 有偿,求个自动门设计思路
  • ¥15 心率变异性联合机器学习预测子宫颈癌 FIGO 分期
  • ¥15 WebSocket的问题
  • ¥15 BDSBAS-B1C和B1C信号有什么不同
  • ¥15 在半圆平面内随机生成点坐标
  • ¥15 系统容量变化的几种多址方式TDMA, CDMA,FDMA,OFDMA 对比,应该给的是一个曲线 图,随着系统容量的增加,几种多址方式性能的对比 图,MATLAB程序仿真折线图
  • ¥15 用visual Studio 写c ++只运行上一个旧代码的运行结果是怎么回事
  • ¥15 系统容量变化的几种多址方式(TDMA,FDMA,OFDMA,CDMA)对比(相关搜索:曲线图)
  • ¥15 worldclim 历史及未来气候数据矫正
  • ¥15 ajax服务器不能下载