我试图从一个复杂的property[]文件中获取所有“方法名”、“全名”和JSON值的列表,我已经尝试实现了一个基本模型来读取顶层,但所有内容都作为null返回;
public class TestRun
{
public string @id { get; set; }
public string @name { get; set; }
public string @fullname { get; set; }
public string testcasecount { get; set; }
public TestSuite[] TestSuite { get; set; }
}
public class TestSuite
{
}
public class ScriptModel
{
public TestRun[] TestRun { get; set; }
}JSON看起来是这样的;从根级别看,有大量嵌套的“test-suite”和“test-fixture”。
"test-suite": {
"@type": "TestSuite",
"@id": "0-1030",
"@name": "Example__Exampledll",
"@fullname": "Example",
"@runstate": "Runnable",
"@testcasecount": "24",
"test-suite": {
"@type": "TestSuite",
"@id": "0-1031",
"@name": "Features",
"@fullname": "Payments_Regression.Features",
"@runstate": "Runnable",
"@testcasecount": "24",
"test-suite": [
{
"@type": "TestSuite",
"@id": "0-1033",
"@name": "PRE",
"@fullname": "Payments_Regression.Features",
"@runstate": "Runnable",
"@testcasecount": "16",
"test-suite": [
{
"@type": "TestFixture",
"@id": "0-1015",
"@name": "Outwards",
"@fullname": "Example_Outwards",
"@classname": "Example_Dll_Example_Outwards",
"@runstate": "Runnable",
"@testcasecount": "8",
"properties": {
"property": [
{
"@name": "Description",
"@value": "Smoke"
},
{
"@name": "Category",
"@value": "PREPRODUCTION"
},
{
"@name": "Category",
"@value": "Payment"
}
]
},
"test-case": [
{
"@id": "0-1017",
"@name": "TestCaseNameIWantToCapture",
"@fullname": "fullnameexample",
"@methodname": "MethodNameToCapture",
"@classname": "ClassNametoCapture",
"@runstate": "Runnable",
"@seed": "1767458888",
"properties": {
"property": {
"@name": "Description",
"@value": "PropertyValueiWouldLikeToCapture."
}
}
},发布于 2020-02-19 20:01:22
你使用特殊符号@它不会改变变量的名称,这个符号有时用于使用像变量名var @object = "sample"这样的关键字
您需要使用JsonProperty属性
public class TestRun
{
[JsonProperty("@id")]
public string Id { get; set; }
[JsonProperty("@name")]
public string Name { get; set; }
[JsonProperty("@fullname")]
public string FullName { get; set; }
[JsonProperty("@testcasecount")]
public string TestCaseCount { get; set; }
[JsonProperty("test-suite")]
public TestSuite[] TestSuite { get; set; }
}https://stackoverflow.com/questions/60299232
复制相似问题