【问题标题】:deserialize json list from Rest server c#从 Rest 服务器 c# 反序列化 json 列表
【发布时间】:2018-10-21 23:40:43
【问题描述】:

这里有点卡住,我想从服务器发回给我的 json 中获取“通知”(列表)。请看下面:

{"amountCashback": 0,"amountGratuity": 0, "amountTotal": 0, "notifications":["APPROVED" ],}

通知被枚举;

notifications {
string = ['APPROVED', 'BAD_SWIPE', 'CARD_ERROR', 'CARD_EXPIRED', 'CARD_NOT_SUPPORTED', 'CONNECTING', 'CONNECTION_MADE', 'DECLINED', 'DECLINED_BY_CARD', 'INSERT_CARD', 'PIN_ENTRY', 'PLEASE_WAIT', 'PRESENT_CARD', 'PRESENT_ONLY_ONE_CARD', 'PROCESSING_ERROR', 'REMOVE_CARD', 'RETRYING', 'REQUEST_SENT', 'RE_PRESENT_CARD', 'SIGNATURE_VERIFICATION', 'SIGNATURE_VERIFICATION_PROCESS_COMPLETED', 'SIGNATURE_VERIFICATION_PROCESS_COULD_NOT_BE_COMPLETED', 'SIGNATURE_VERIFICATION_IN_PROGRESS', 'SIGNATURE_VERIFICATION_TIMEOUT', 'TRANSACTION_FINISHED', 'TRANSACTION_STARTED']

使用json到c#我已经创建了下面的类

class Polling
{
    public int amountBase { get; set; }
    public int amountCashback { get; set; }
    public int amountGratuity { get; set; }
    public int amountTotal { get; set; }
    public string authCode { get; set; }
    public string cardSchemeName { get; set; }
    public string cardHolderVerificationMethod { get; set; }
    public string location { get; set; }
    public List<string> notifications { get; set; }
    public string paymentMethod { get; set; }
    public string transactionResult { get; set; }
    public DateTime transactionTime { get; set; }
    public string transactionType { get; set; }
    public string endPoint { get; set; }
    public httpVerb httpMethod { get; set; }
    public string userPassword { get; set; }
    public int sendAmount { get; set; }
    public string requestId { get; set; }}

我希望能够反序列化并抓取通知以在屏幕上显示它们。下面我添加了我正在使用的代码。

 try
        {
            response = (HttpWebResponse)request.GetResponse();
            using (Stream responseStream = response.GetResponseStream())
            {
                if (responseStream != null)
                {
                    using (StreamReader reader = new StreamReader(responseStream))
                    {
                        strResponseValue = reader.ReadToEnd();
                    }
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        dynamic jsonObjtpi = JsonConvert.DeserializeObject(strResponseValue);
                        string notifications = jsonObjtpi.notifications.ToString();
                        return notifications;
                    }

                }
            }
        }

谢谢大家,非常感谢

【问题讨论】:

  • 我不确定我是否看到了问题,这是什么问题?
  • 我相信 OP 想从响应中获取notifications[]。他目前正在给它们串起来,基于他想要渲染它们的愿望,这是无用的。

标签: c# json list rest json-deserialization


【解决方案1】:

Json 可以使用您的强类型 Polling 对象,例如

Polling polling = JsonConvert.DeserializeObject<Polling>(strResponseValue);

https://www.newtonsoft.com/json/help/html/DeserializeObject.htm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-11
    • 2019-01-04
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    相关资源
    最近更新 更多