嗨我在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}
我如何从中获取数据和结果值?
您正在使用的方法,即:
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
希望这可以帮助.
通过观察JsonConvert.SerializeObject
,我猜你正在使用NewtonSoft
DLL.你可以JObject.Parse
在Newtonsoft.Json.Linq
其中导入(using Newtonsoft.Json.Linq;
).您可以将该json字符串解析为
var details = JObject.Parse(your_json_string);
这将给你JObject
,你可以得到详细信息
var data = details["Data"].ToString();