在J#中将JsonResult转换为另一个对象

时间:2014-09-16 18:07:17

标签: c# json object jsonresult

所以我有一个名为Balance的对象,其中包含:

public class Balance
{
   string balance1;
   string balance2;
   string currency;
}

我正在尝试将由不同函数调用返回的JsonResult对象解析为Balance的实例。

我尝试过使用JsonConvert.SerializeDeseralize<Balance>,但是我每次都要将要解析的对象设置为null(即balance1 = null等)

非常感谢任何帮助。

编辑:

以下是我要解析的代码。此外,我意识到JsonResult中的数据访问位于名为Data的值中,并显示为Data: { balance1: "800" balance2: "800" currency: "CAD"}

JsonResult result = admin.GetCompanyBalance(test.CustomerID, test.DevelopmentID); 
string json = JsonConvert.SerializeObject(result);
Balance br = new Balance();
br = JsonConvert.DeserializeObject<Balance>(json);

2 个答案:

答案 0 :(得分:2)

鉴于你的JSON:

Data: { balance1: "800" balance2: "800" currency: "CAD"}

您想要的对象似乎嵌套在父对象的Data属性中。你可以这样做:

JObject o = JObject.parse(json);
Balance br = o["Data"].ToObject<Balance>();

答案 1 :(得分:2)

JsonResult.Data是您要查找的Balance对象。

    JsonResult result = admin.GetCompanyBalance(test.CustomerID, test.DevelopmentID);

    var balance = result.Data as Balance;

或者如果您想测试序列化和反序列化,您可以

    var json = JsonConvert.SerializeObject(result.Data);   

    var br = JsonConvert.DeserializeObject<Balance>(json);

http://www.heartysoft.com/ashic/blog/2010/5/ASPNET-MVC-Unit-Testing-JsonResult-Returning-Anonymous-Types