将 JSON 数据导入 C# 字符串

Getting JSON data into C# strings

所以我正在制作一个应用程序,我需要从 JSON 个文件中动态提取数据。

这是 JSON 文件的片段:

{
    "004bb5ee-34ba-484a-924b-31412d898e7e": {
        "title": "obj_survivalobject_elevatordoor_left"
    },
    "00284190-1484-4286-a198-b2ddef768c2e": {
        "description": "Adds shock absorption and provides stability. Great for vehicles to prevent them from easily flipping over. This suspension has a lot of bounce, making it ideal for off-road vehicles.",
        "title": "Off-Road Suspension 2"
    },
    "011c1ffd-7146-4e8d-8c18-17247d768ae2": {
        "title": "obj_spaceship_wall04"
    }
}

文件中还有很多内容。 但我只需要获取标题和该标题的 parent 即可。例如:

Tag: "00284190-1484-4286-a198-b2ddef768c2e"
Name: "Off-Road Suspension 2"

我不想要描述,而且不是所有人都有。

我还将使用 JSON 应用程序 运行 时用户选择的文件。

尝试将您的 Json 文件反序列化为一个集合 (list/dict/etc)。

有关 C# 中序列化和反序列化的详细信息,请参阅 here

试试这个

var jsonDeserialized = JsonConvert.DeserializeObject<Dictionary<string,Description>>(json); 
var list = jsonDeserialized.Select(kvp => new TagName { Tag = kvp.Key, 
Name=kvp.Value.title} ).ToList();

var output = JsonConvert.SerializeObject(list);

输出

[{"Tag":"004bb5ee-34ba-484a-924b-31412d898e7e","Name":"obj_survivalobject_elevatordoor_left"},
{"Tag":"00284190-1484-4286-a198-b2ddef768c2e","Name":"Off-Road Suspension 2"},
{"Tag":"011c1ffd-7146-4e8d-8c18-17247d768ae2","Name":"obj_spaceship_wall04"}]

或者这样

foreach (var item in list)
{
     Console.WriteLine ( $"Tag : {item.Tag}, Name: {item.Name}");
        
}

public class Description
{
    public string description { get; set; }
    public string title { get; set; }
}

public class TagName
{
    public string Tag { get; set; }
    public string Name { get; set; }
}