簡體   English   中英

將 json 轉換為 class object

[英]Converting json to class object

我的 object 定義為:

public class sendSmsResult
{
    public sendSmsResult()
    {
        MessageIdList=new List<MessageId>();
    }
    
    public string ErrorCode { get; set; }
    public string PacketId { get; set; }
    public List<MessageId> MessageIdList { get; set; }

}

public class MessageId
{
    public MessageId()
    {
        messageid=new List<string>();
    }
    public List<string> messageid { get; set; }
}

執行此操作后:

IRestResponse response = client.Execute(request);

我從“response.Content”獲取 jsonresult 作為

 "{\"sendSmsResult\":{\"ErrorCode\":\"0\",\"PacketId\":\"261633886\",\"MessageIdList\":{\"MessageId\":[\"7096779206\",\"-19\"]}}}"

得到 json 字符串后,我正在運行這個:

 JsonConvert.DeserializeObject<sendSmsResult>(response.Content);

給出錯誤說:

{"Message":"發生錯誤。","ExceptionMessage":"錯誤轉換值"{"sendSmsResult":{"ErrorCode":"0","PacketId":"261638899","MessageIdList":{" MessageId":["7097068828","-19"]}}}" 輸入 'UME.WebApi.Models.sendSmsResult'。路徑 '',第 1 行,position

您需要 sendSmsResult 的包裝器,如下所示:

class sendSmsResultWrapper {
public sendSmsResult sendSmsResult {get;set;}
}

而且, typeof sendSmsResult.MessageIdListMessageId ,而不是List<MessageId>

對於它的價值json2csharp.com (無從屬關系)建議您的示例數據使用以下 class 結構:

// Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse); 
    public class MessageIdList    {
        public List<string> MessageId { get; set; } 
    }

    public class SendSmsResult    {
        public string ErrorCode { get; set; } 
        public string PacketId { get; set; } 
        public MessageIdList MessageIdList { get; set; } 
    }

    public class Root    {
        public SendSmsResult sendSmsResult { get; set; } 
    }

暫無
暫無

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

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