[英]Convert JSON [][] to object in c#
我将我的JSON对象转换为可以在C#代码中工作的对象时遇到了一些问题。
{ "CheckboxHours": {
"method": "ID",
"valueparts": [
"Hour",
[ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23" ]
]
}
}
这是我拥有的JSON字符串,用于为我创建Selenium对象。 我想要的是将valueparts[0]
(“小时”)中的值与valueparts[1][0-23]
相互组合,并创建一个Selenium对象数组
var jsonData = JsonConvert.DeserializeObject<jsonc#file>(_jsonFile);
Object[] hours = (Object[])jsonData.CheckboxHours.Valueparts[1];
SeleniumCheckBox[] checkbox = new SeleniumCheckBox[hours.Length];
for (int i = 0; i < hours.Length; ++i)
{
cbHour[i] = new SeleniumCheckBox(jsonData.CheckboxHours.Valueparts[0].ToString() + hours[i]);
}
SeleniumCheckBox
是我制作的一个类,它findElement(By.ID(value))
取值并在后台创建一个具有findElement(By.ID(value))
的新Selenium元素。 这已经在工作了。
我的问题是,他不允许从jsonData到Object[]
的转换,而且我真的不知道该如何处理。
我希望我明确希望拥有什么-如果不能随意要求提供更具体的数据。
我认为。 你可以试试看
var jsonData = JsonConvert.DeserializeObject<dynamic>(_jsonFile);
var hours = jsonData.CheckboxHours.valueparts[1];
foreach (var hour in hours)
{
//Some code
}
我不确定我是否理解正确,但是反序列化失败的原因可能是valueparts是List参数,通常在c#中,List仅包含一种类型的参数,例如。 字符串或整数。 在您的情况下,“小时”(valueparts [0])是一个字符串,而valueparts [1]是List。 我假设这是与反序列化JSON字符串的冲突。
{
CheckboxHours:{
"method":"ID",
"valueparts":{
Measure: "Hour",
MesureValues:
[
"0","1","2","3","4","5","6","7",
"8","9","10","11","12","13","14",
"15","16","17","18","19","20",
"21","22","23"
]
}
}
}
像上面的代码一样,将valueparts更改为object,因此您可以将Hour作为字符串,并将value用作List。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.