首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从复杂的JSON格式文件C#中获取特定信息

如何从复杂的JSON格式文件C#中获取特定信息
EN

Stack Overflow用户
提问于 2020-02-19 19:21:59
回答 1查看 44关注 0票数 0

我试图从一个复杂的property[]文件中获取所有“方法名”、“全名”和JSON值的列表,我已经尝试实现了一个基本模型来读取顶层,但所有内容都作为null返回;

代码语言:javascript
复制
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”。

代码语言:javascript
复制
            "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."
                                                }
                                            }
                                        },
EN

回答 1

Stack Overflow用户

发布于 2020-02-19 20:01:22

你使用特殊符号@它不会改变变量的名称,这个符号有时用于使用像变量名var @object = "sample"这样的关键字

您需要使用JsonProperty属性

代码语言:javascript
复制
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; }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60299232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档