我已经成功地使用 JToken 和 JArray 来获取特定的数据片段,但是我遇到了一个特殊问题。问题在于从我的节点“work_unit”中的键/值对中提取值。您可以在我的 JObject 中看到该节点:
JObject testString = JObject.Parse("{"
+ "'Roofing': {"
+ "'Buildings': ["
+ "{"
+ "'BuildingId': 4,"
+ "'BuildingName': 'what',"
+ "'work_unit': '{\"RoofingBuildings\":\"1\",\"WindowsBuildings\":\"\",\"GutterBuildings\":\"\",\"InsulationMasterPrice\":\"\",\"SidingBuildings\":\"\"}'"
+ "},"
+ "{"
+ "'BuildingId': 3,"
+ "'BuildingName': 'Home'"
+ "}"
+ "],"
+ "'Windows': ["
+ "{"
+ "'PerimeterDrawings': 56,"
+ "},"
+ "{"
+ "'PerimeterDrawings': 55,"
+ "}"
+ "]"
+ "},"
+ "'Window':"
+ "{"
+ "'poof': 3,"
+ "'stall': 7"
+ "},"
+ "'Products': ["
+ "'Roofing',"
+ "'Pooping',"
+ "],"
+ "'Garage': ["
+ "{"
+ "'roof': 3,"
+ "'wall': 7"
+ "},"
+ "{"
+ "'roof': 3,"
+ "'wall': 7"
+ "}"
+ "]"
+ "}");
我可以像这样获得整个“work_unit”:
JToken jt= JO.SelectToken("Roofing.Buildings[0].work_unit");
^^ jt will contain:
{{"RoofingBuildings":"1","WindowsBuildings":"","GutterBuildings":"","InsulationMasterPrice":"","SidingBuildings":""}}
如何从 RoofingBuildings 获得“1”?我尝试了几种方法,这里有一些,但它们最终都为空。
string foo1 = (string)JTNewTest.SelectToken(".RoofingBuildings");
string foo2 = (string)JO.SelectToken("Roofing.Buildings[0].work_unit[0].RoofingBuildings");
提前致谢,由于某种原因,我无法在任何其他在线示例中找到我的确切情况:/
你可以这样理解,我假设 work_unit 应该被拆分成它自己的属性而不是一个字符串..希望我的假设是正确的。为了可读性,还制作了多行字符串。
JObject testString = JObject.Parse(@"
{
'Roofing': {
'Buildings':
[
{
'BuildingId': 4,
'BuildingName': 'what',
'work_unit':
{
'RoofingBuildings':'1',
'WindowsBuildings':'',
'GutterBuildings':'',
'InsulationMasterPrice':'',
'SidingBuildings':''
}
},
{
'BuildingId': 3,
'BuildingName': 'Home'
}
],
'Windows':
[
{
'PerimeterDrawings': 56,
},
{
'PerimeterDrawings': 55,
}
]
},
'Window':
{
'poof': 3,
'stall': 7
},
'Products':
[
'Roofing',
'Pooping'
],
'Garage':
[
{
'roof': 3,
'wall': 7
},
{
'roof': 3,
'wall': 7
}
]
}");
var roofingBuildings = testString["Roofing"]["Buildings"][0]["work_unit"]["RoofingBuildings"];
Console.WriteLine("RoofingBuildings: {0}", roofingBuildings);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句