当前位置:  开发笔记 > 编程语言 > 正文

在不使用类的情况下解析c#中的Json对象

如何解决《在不使用类的情况下解析c#中的Json对象》经验,为你挑选了2个好方法。

嗨我在json对象中有两个字符串值.我想在同一个类中调用此方法,并在不使用类的情况下使用这些值.

我正在使用以下方法

public JsonResult Details()
    {
        return Json(new { Data = "DisplayName", result = "UniqueName" });
    }

我需要在其他一些方法中使用这些数据和结果值.

我得到的价值就像

  var Details = JsonConvert.SerializeObject(Details());

我的输出是 {\"ContentEncoding\":null,\"ContentType\":null,\"Data\":{\"Data\":\"DisplayName\",\"result\":\"UniqueName\"},\"JsonRequestBehavior\":1,\"MaxJsonLength\":null,\"RecursionLimit\":null}

我如何从中获取数据和结果值?



1> Syed Muhamma..:

您正在使用的方法,即:

public JsonResult Details()
{
        return Json(new { Data = "DisplayName", result = "UniqueName" });
}

返回一个JsonResult对象,该对象具有名为"Data"的属性,即Details().包含对象包含的数据的数据.因此,为了获得您的对象[数据和结果值],您需要再次序列化它,即

这是完整的解决方案:

JsonResult json = Details(); // return JsonResult type object
string ser = JsonConvert.SerializeObject(json.Data); // serializing JsonResult object (it will give you json string)
object dec = JsonConvert.DeserializeObject(ser); // deserializing Json string (it will deserialize Json string)
JObject obj =  JObject.Parse(dec.ToString()); // it will parse deserialize Json object
string name = obj["Data"].ToString(); // now after parsing deserialize Json object you can get individual values by key i.e.

string name = obj["Data"].ToString(); // will give Data value
string name = obj["result"].ToString(); // will give result value

希望这可以帮助.



2> Bharadwaj..:

通过观察JsonConvert.SerializeObject,我猜你正在使用NewtonSoftDLL.你可以JObject.ParseNewtonsoft.Json.Linq其中导入(using Newtonsoft.Json.Linq;).您可以将该json字符串解析为

var details = JObject.Parse(your_json_string);

这将给你JObject,你可以得到详细信息

var data = details["Data"].ToString();

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有