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

如何在c#mvc中将Json结果转换为对象,c#,json,asp.net-mvc,json.net,C#,Json,Asp.net Mvc,Json.net,我试图将此响应转换为object,以便在c#mvc应用程序中使用object访问它们 以下是我所做的代码: var response = await client.GetAsync("ApiTest?Amount=" + Amount.ToString() + "&WalletAddress=" + WalletAddress.ToString() + "&TokenCode=" + TokenType.ToString());

我试图将此响应转换为object,以便在c#mvc应用程序中使用object访问它们

以下是我所做的代码:

 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);

                                        }
var response=wait client.GetAsync(“ApiTest?Amount=“+Amount.ToString()+”&WalletAddress=“+WalletAddress.ToString()+”&TokenCode=“+TokenType.ToString());
if(响应。IsSuccessStatusCode)
{
结果=response.Content.ReadAsStringAsync().result;
var test1=Newtonsoft.Json.JsonConvert.DeserializeObject(结果);
(Newtonsoft.Json.JsonConvert.DeserializeObject(结果));
结果=wait response.Content.ReadAsStringAsync();
var obj=Newtonsoft.Json.JsonConvert.DeserializeObject(结果);
返回Json(新的{Message=“您的事务已成功完成!”},JsonRequestBehavior.AllowGet);
}
以下是Json响应,但其格式为字符串:

{“错误”:“交易金额必须大于 0,“结果”:null,“IsSuccess”:false,“HttpResponse”:{“Headers”:[{“Key”:“X-Frame-Options”,“Value”:[“sameorigin”]},{“Key”:“Strict Transport Security”,“Value”:[“max age=31536000”]},{“Key”:[“no cache”]},{“Key”:“Access Control Allow Origin”,“Value”:[“*”},{“Key”:“Keep Alive”,“Value”:[“timeout=5,max=100”},{“Key”:“Connection[“保持活动”]},{“键”:“缓存控制”,“值”:[“无存储, 必须重新验证,无缓存,后期检查=0, 预检查=0“]},{“键”:“日期”,“值”:[“Wed,2018年2月28日09:43:57 GMT“]},{“键”:“设置Cookie”,“值”:[“PHPSESSID=3vbjmnpea9i9n871a8knc3s89q7lufpn; 路径=/;安全; HttpOnly,“visid_incap992349=On7CIEXMQBq9AtX5/pvhqtp5lloaaaquipaaaaaacxll2z399yxat6ixztsol+; expires=Wed,2019年2月27日14:49:04 GMT;路径=/; Domain=.coinpayments.net,“incap_ses_478_992349=pCsbJzCRvCFLbgPwODOiBtx5lloAAAAAR8gvl6uEmcAX0kCi3b/2Ig=”; 路径=/; Domain=.coinpayments.net“]},{“Key”:“Server”,“Value”:[“Apache”]},{“Key”:“X-Iinfo”,“Value”:[“5-23697956-23698018 北区北环线(14612730)RT(15198110346506)q(00171)r(1819) U6“]},{“键”:“X-CDN”,“值”:[“Incapsula”]}],“内容体”:“{\”错误\“:\”事务 金额必须大于 0\“,\“结果\\”:[]],“状态代码”:200,“IsSuccessStatusCode”:true,“RequestUri”:“RequestBody”:“cmd=create\u交易\u0026amount=0\u0026currency1=USD\u0026currency2=LTCT\u0026buyer\u email=3PT5EBZSWMW2IJ1BNFv1YJYK2155PGZGx\u0026version=1\u0026key=C84F65F198E77895F3EDC08E76543785F1057C07C61156937558”}

任何帮助都将不胜感激>
谢谢

您可以利用Visual Studio的粘贴特殊功能:

复制JSON并粘贴特殊内容:

您将获得以下课程:

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);  
var items=JsonConvert.DeserializeObject(json);
输出:


您可以利用Visual Studio的粘贴特殊功能:

复制JSON并粘贴特殊内容:

您将获得以下课程:

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);  
var items=JsonConvert.DeserializeObject(json);
输出:

试试这个:

using Newtonsoft.Json.Linq;
...
var jso = JObject.Parse(content);
string value = jso["propertyname"].Value<string>();
使用Newtonsoft.Json.Linq;
...
var jso=JObject.Parse(内容);
字符串值=jso[“propertyname”].value();
试试这个:

using Newtonsoft.Json.Linq;
...
var jso = JObject.Parse(content);
string value = jso["propertyname"].Value<string>();
使用Newtonsoft.Json.Linq;
...
var jso=JObject.Parse(内容);
字符串值=jso[“propertyname”].value();

到目前为止您尝试了什么?您已经标记了json.net,所以我想您知道该库。您研究了文档以了解如何反序列化json吗?我尝试了以下方法:var response=wait client.GetAsync(“ApiTest?Amount=“+Amount.ToString()+”&WalletAddress=“+WalletAddress.ToString()+”&TokenCode=“+TokenType.ToString()”);result=response.Content.ReadAsStringAsync().result;var test1=Newtonsoft.Json.JsonConvert.DeserializeObject(结果);结果是什么?另外,你应该把你的代码粘贴到问题中可读的地方,而不是在注释中-Thanks我在响应变量中得到api调用的结果,然后尝试反序列化,但我给我的json字符串不是对象形式的
test1
应该是
动态的
对象。因此它应该有属性。例如
test1.Error
应该包含“交易金额必须大于0”到目前为止您尝试了什么?您已经标记了json.net,所以我想您知道该库。您是否研究了文档以了解如何反序列化json?我尝试了以下方法:var response=await client.GetAsync(“ApiTest?amount=“+amount.ToString())+“&WalletAddress=“+WalletAddress.ToString()+”&TokenCode=“+TokenType.ToString());结果=response.Content.ReadAsStringAsync().result;var test1=Newtonsoft.Json.JsonConvert.DeserializeObject(结果);结果是什么?另外,你应该把你的代码粘贴到问题中可读的地方,而不是在注释中-Thanks我在响应变量中得到api调用的结果,然后尝试反序列化,但我给我的json字符串不是对象形式的
test1
应该是
动态的
对象。因此它应该有属性。例如
test1.Error
应包含“交易金额必须大于0”@NainaBlue乐于帮助。@NainaBlue乐于帮助。