问题
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