Converting JsonResult into a different object in C#

爱⌒轻易说出口 提交于 2019-12-11 02:51:35

问题


So I have an object named Balance that contains:

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

and I'm trying to parse a JsonResult object that is returned by a different function call into an instance of Balance.

I've tried using JsonConvert.Serialize and Deseralize<Balance>, however, the object that I'm trying to parse into is set to null every time (ie balance1 = null etc)

Any help would be much appreciated.

EDIT:

Below is the code I'm trying to parse. Also, I realized that the data access in JsonResult is in a value called Data and shows up as 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);

回答1:


Given your JSON:

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

The object you want appears to be nested inside the Data property of a parent object. You could do something like:

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



回答2:


JsonResult.Data is the Balance object you are looking for.

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

    var balance = result.Data as Balance;

Or if you want to test the serialization and deserialization you can do

    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



来源:https://stackoverflow.com/questions/25875658/converting-jsonresult-into-a-different-object-in-c-sharp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!