【问题标题】:How to pass json response to a model in ASP.Net MVC?如何将 json 响应传递给 ASP.Net MVC 中的模型?
【发布时间】:2019-05-07 03:32:56
【问题描述】:

我很难将 JSON 值传递给模型。

我已经尝试解析 JSON 响应并将值传输到变量,效果很好,但我想做的是将值传输到模型。

            var transno = "ST-100420190001";

            var client = new HttpClient();
            var httpRequestMessage = new HttpRequestMessage
            {
                Method = HttpMethod.Get,
                RequestUri = new Uri("https://myurl.com/" + transno),
                Headers = {
                { HttpRequestHeader.Accept.ToString(), "application/json" },
                { HttpRequestHeader.ContentType.ToString(), "application/json"},
                { "client-id", "client_id"},
                { "client-secret","client_secret"},
                { "partner-id","partner_id"},
                { "X-Version", "1" }
            }
            };

            var response = client.SendAsync(httpRequestMessage).Result;
            var payload = JObject.Parse(await response.Content.ReadAsStringAsync());  

Postman 上的 JSON 响应如下所示

{
    "records": [
        {
            "transferId": "YU6411649475339",
            "type": "Payment",
            "createdAt": "2018-08-10T08:40:46.000Z",
            "dateUpdated": "",
            "state": "Sent for Processing",
            "senderTransferId": "ST-100420190001"
        }
    ],
    "totalRecords": 1
}

【问题讨论】:

  • 您想将有效负载对象分配给模型吗?
  • 是的,这就是我想做的。
  • 检查我的更新答案

标签: asp.net json asp.net-mvc httpresponse


【解决方案1】:

首先,您需要创建模型来保存您的 json 响应。根据您的输出,您的模型应具有以下格式。

public class Record
{
    public string transferId { get; set; }
    public string type { get; set; }
    public DateTime createdAt { get; set; }
    public string dateUpdated { get; set; }
    public string state { get; set; }
    public string senderTransferId { get; set; }
}

public class RootObject
{
    public List<Record> records { get; set; }
    public int totalRecords { get; set; }
}

将您的有效负载对象分配给模型:

RootObject obj= JsonConvert.DeserializeObject<RootObject>(response.Content);

【讨论】:

    【解决方案2】:

    使用 javascript 序列化程序。

    例子:

      var json = new JavaScriptSerializer().Serialize('values');
    
      var contents = new StringContent(json.ToString(), Encoding.UTF8, "application/json");
    

    然后

    var respo = await client.PostAsync("https://myurl.com/", contents);
    

    【讨论】:

    • 我将如何使用它来将 JSON 值传输到模型?因为我在这里看到的是,您只需将响应传输到 var respo,就像我对 var 有效负载所做的一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-24
    • 1970-01-01
    • 2011-05-08
    • 2023-04-05
    • 2021-07-05
    • 2017-05-24
    • 1970-01-01
    相关资源
    最近更新 更多