[英]How to convert a json values to a dictionary in c# and address them with a string value?
我正在尝试制作一个json值的字典,以使用字符串对它们进行索引。 我正在使用Newtonsoft反序列化json字符串。 我的json是:
{
"financialPositions": [
{
"fieldName": "Assets",
"periodEndToDateValue": 0.0,
"pastYearEndToDateValue": 0.0,
"description": "\u062f\u0627\u0631\u0627\u06cc\u06cc\u200c\u200c\u0647\u0627",
"percentChanges": 0.0,
"rowClass": "GroupHeader"
},
{
"rowClass": "ComputationalRow",
"fieldName": "ListedCapital",
"description": "\u0633\u0631\u0645\u0627\u06cc\u0647",
"percentChanges": 0.0,
"currentPeriodEndToDateValue": 1.0,
"pastSimillarEndToDateValue": 1.0,
"pastYearEndToDateValue": 1.0
}
]
}
我使用了这些课程:
public class RootObject
{
public FinancialPositions[] financialPositions{ get; set; }
}
public class FinancialPositions
{
public string fieldName { get; set; }
public double periodEndToDateValue { get; set; }
public double pastYearEndToDateValue { get; set; }
public string description { get; set; }
public float percentChanges { get; set; }
public string rowClass { get; set; }
}
我用它反序列化json字符串:
RootObject oRootObject = new RootObject();
oRootObject = JsonConvert.DeserializeObject<RootObject>(jsonstring);
需要进行哪些更改以解决以下问题?
oRootObject.financialPositions["Assets"]
您可以为对象定义索引器 []
。
public class RootObject
{
public FinancialPositions[] financialPositions{ get; set; }
public object this[string name]
{
get { return financialPositions.FirstOrDefault(f => f.fieldName == name); }
set { }
}
}
然后打电话
oRootObject["Assets"]
它返回您的对象
{
"fieldName": "Assets",
"periodEndToDateValue": 0.0,
"pastYearEndToDateValue": 0.0,
"description": "\u062f\u0627\u0631\u0627\u06cc\u06cc\u200c\u200c\u0647\u0627",
"percentChanges": 0.0,
"rowClass": "GroupHeader"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.