【发布时间】:2018-08-08 03:35:08
【问题描述】:
我正在尝试将此响应转换为对象,以便我可以使用 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 响应,但它是字符串格式:
{"Error":"交易金额必须大于 0","Result":null,"IsSuccess":false,"HttpResponse":{"Headers":[{"Key":"X-Frame-Options","Value":["sameorigin"]},{ "Key":"Strict-Transport-Security","Value":["max-age=31536000"]},{"Key":"Pragma","Value":["no-cache"]},{ "Key":"Access-Control-Allow-Origin","Value":["*"]},{"Key":"Keep-Alive","Value":["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, 28 Feb 2018 09:43:57 GMT"]},{"Key":"Set-Cookie","Value":["PHPSESSID=3vbjmnpea9i9n871a8knc3s89q7lufpn; 路径=/;安全的; HttpOnly","visid_incap_992349=On7CIEXMQBq9AtX5/PvHQtp5lloAAAAAQUIPAAAAAAACXLL2Z399YXaT6IXztsol+; 到期=格林威治标准时间 2019 年 2 月 27 日星期三 14:49:04;路径=/; 域=.coinpayments.net","incap_ses_478_992349=pCsbJzCRvCFLbgPwODOiBtx5lloAAAAAR8gvl6uEmcAX0kCi3b/2Ig==; 路径=/; 域=.coinpayments.net"]},{"Key":"Server","Value":["Apache"]},{"Key":"X-Iinfo","Value":["5-23697956 -23698018 NNNN CT(1461 273 0) RT(1519811034346 506) q(0 0 17 1) r(18 19) U6"]},{"Key":"X-CDN","Value":["Incapsula"]}],"ContentBody":"{\"error\":\"事务 金额必须大于 0\",\"result\":[]}","StatusCode":200,"IsSuccessStatusCode":true,"RequestUri":"https://www.coinpayments.net/api.php","RequestBody":"cmd=create_transaction\u0026amount=0\ u0026currency1=USD\u0026currency2=LTCT\u0026buyer_email=3Pt5ebwZsMWV2ij1bnFv1yJYk2155PGzGx\u0026version=1\u0026key=c84f65f198e77895f3edc08e7654379785f10567c7c0c61581dp568
任何帮助将不胜感激> 谢谢
【问题讨论】:
-
到目前为止您尝试过什么?你已经标记了 json.net,所以我猜你知道那个库。您是否研究过文档以了解如何反序列化 JSON?
-
我试过这个: var response = await client.GetAsync("ApiTest?Amount=" + Amount.ToString() + "&WalletAddress=" + WalletAddress.ToString() + "&TokenCode=" + TokenType .ToString());result = response.Content.ReadAsStringAsync().Result; var test1 = Newtonsoft.Json.JsonConvert.DeserializeObject
(result); -
结果如何?附言您应该将代码粘贴到可读的问题中,而不是 cmets - 谢谢
-
我在响应变量中获取 api 调用的结果,然后尝试反序列化,但我给了我不是对象形式的 json 字符串
-
test1应该是dynamic对象。所以它应该有属性。例如test1.Error应包含“交易金额必须大于0”
标签: c# json asp.net-mvc json.net