簡體   English   中英

從 Rest 服務器 C# 反序列化 json 列表

[英]deserialize json list from Rest server c#

只是有點卡在這里,我想從從服務器發回給我的 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;
                    }

                }
            }
        }

謝謝各位,真的很感謝

Json 可以使用您的強類型Polling對象,例如

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM