如何在c#mvc中将Json结果转换为对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在c#mvc中将Json结果转换为对象相关的知识,希望对你有一定的参考价值。

我试图将此响应转换为对象,以便我可以使用c#mvc应用程序中的对象访问它们。

以下是我做的代码:

 var response = await client.GetAsync("ApiTest?Amount=" + Amount.ToString() + "&WalletAddress=" + WalletAddress.ToString() + "&TokenCode=" + TokenType.ToString());




                                        if (response.IsSuccessStatusCode)
                                        {

                          result = response.Content.ReadAsStringAsync().Result;
                          var test1 = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(result);
(Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(result));

                                           result = await response.Content.ReadAsStringAsync();
                                           var obj =Newtonsoft.Json.JsonConvert.DeserializeObject(result);
                                            return Json(new { Message = "Your Transaction Has Been Completed Successfully!" }, JsonRequestBehavior.AllowGet);

                                        }

以下是Json响应,但其字符串格式为:

{“错误”:“交易金额必须大于0”,“结果”:空,“IsSuccess”:false,“HttpResponse”:{“标题”:[{“Key”:“X-Frame-Options”, “值”: “SAMEORIGIN”]},{ “关键”: “严,运输和安全”, “值”: “最大年龄= 31536000”]},{ “关键”: “语法”,“价值“:”无缓存“]},{”关键“:”访问控制允许来源“‘值’:‘*’]},{‘关键’:‘保持活动’,”价值“:[”timeout = 5,max = 100“]},{”Key“:”Connection“,”Value“:[”Keep-Alive“]},{”Key“:”Cache-Control“,”Value“ “:[”no-store,must-revalidate,no-cache,post-check = 0,pre-check = 0“]},{”Key“:”Date“,”Value“:[”Wed,2月28日2018 09:43:57 GMT“]},{”Key“:”Set-Cookie“,”Value“:[”phpSESSID = 3vbjmnpea9i9n871a8knc3s89q7lufpn; path = /; secure; HttpOnly“,”visid_incap_992349 = On7CIEXMQBq9AtX5 / PvHQtp5lloAAAAAQUIPAAAAAACXLL2Z399YXaT6IXztsol +; expires =星期三,2019年2月27日14:49:04 GMT;路径= /; Domain = .coinpayments.net“,”incap_ses_478_992349 = pCsbJzCRvCFLbgPwODOiBtx5lloAAAAAR8gvl6uEmcAX0kCi3b / 2Ig ==; path = /; Domain = .coinpayments.net“]},{”Key “:” 服务器 “ ”值“:[ ”阿帕奇“]},{ ”键“: ”X-Iinfo“,” 瓦尔ue“:[”5-23697956-23698018 NNNN CT(1461 273 0)RT(1519811034346 506)q(0 0 17 1)r(18 19)U6“]},{”Key“:”X-CDN“, “值”:[“Incapsula”]}],“ContentBody”:“{”error “:”交易金额必须大于0 “,”结果“:[]}”,“StatusCode” :200, “IsSuccessStatusCode”:真 “RequestUri”: “https://www.coinpayments.net/api.php”, “RequestBody”: “CMD = create_transaction u0026amount = 0 u0026currency1 = USD u0026currency2 = LTCT u0026buyer_email = 3Pt5ebwZsMWV2ij1bnFv1yJYk2155PGzGx u0026version = 1 u0026key = c84f65f198e77895f3edc08e7654379785f1057c7c0c6115bee69ed68371d558” }}

任何帮助将非常感谢>谢谢

答案

您可以使用Visual Studio Paste Special功能:

复制JSON和Paste Special:

enter image description here

您将获得以下课程:

public class JsonResponse
{
    public string Error { get; set; }
    public object Result { get; set; }
    public bool IsSuccess { get; set; }
    public Httpresponse HttpResponse { get; set; }
}

public class Httpresponse
{
    public Header[] Headers { get; set; }
    public string ContentBody { get; set; }
    public int StatusCode { get; set; }
    public bool IsSuccessStatusCode { get; set; }
    public string RequestUri { get; set; }
    public string RequestBody { get; set; }
}

public class Header
{
    public string Key { get; set; }
    public string[] Value { get; set; }
}

现在只需使用Newtonsoft反序列化:

var items = JsonConvert.DeserializeObject<JsonResponse>(json);  

输出:

enter image description here

另一答案

试试这个:

using Newtonsoft.Json.Linq;
...
var jso = JObject.Parse(content);
string value = jso["propertyname"].Value<string>();

以上是关于如何在c#mvc中将Json结果转换为对象的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 中将搜索查询结果转换为 Json 可序列化对象

如何在 Flutter 中将 JSON 转换为对象? [关闭]

如何在C#中将ExecuteReader转换为Json对象

如何在 PHP 中将字符串转换为 JSON 对象

如何在 MVC4 中将 Json 字符串输出为 JsonResult?

如何在 Spring MVC (JPA) 中将实体对象列表转换为页面对象?