如何解析JSON对象

时间:2017-04-27 05:02:50

标签: c# json asp.net-mvc unit-testing nunit

我有一个返回Json Result Like的方法:

return Json(new { status = "error", message = "The organization cannot be deleted because contains transmitters!" });

现在我想测试状态和消息我尝试过这个

var result = Controller.DeleteOrganization(2) as JsonResult;
Assert.AreEqual("error", result.Data.message);

我正在错误:

  

对象不包含消息

的定义

如何解决此问题?

2 个答案:

答案 0 :(得分:2)

Data属于object类型,不会公开该属性。尝试将Data属性分配给dynamic变量,然后尝试访问该属性。

var result = Controller.DeleteOrganization(2) as JsonResult;
var data = JsonConvert.SerializeObject(result.Data);
var deserializedData = JsonConvert.DeserializeObject<dynamic>(data);
Assert.AreEqual("error", deserializedData.status);

如果这不起作用,那么我回答herehere您可以适应您的问题。

答案 1 :(得分:0)

  1. 使用json2csharp.com将JSON转换为C#
  2. 创建一个放置代码的类文件
  3. 使用Nuget Package Manager
  4. 将Newtonsoft.Json库添加到项目中
  5. 转换JSON

    RootObject r = JsonConvert.DeserializeObject(json);