首页 > 解决方案 > 如何从包含 JSON 语法数据的文件中读取数据并将所需键和值存储为变量

问题描述

我不得不说这不是一个完美的世界堆栈溢出问题,我遇到了代码级问题但我想知道如何完全满足以下要求。任何建议/建议都会很棒

我有一个主文件夹,其中包含许多子文件夹。这些子文件夹中的每一个都应该有一个 FieServer.config 文件,其中包含 JSON 格式的数据,如下面的代码所示。

{
  "name": "Max",
  "age": "six",
  "gender": "Male",
  "country": "india",
}

我想知道如何从文件中读取并将 2 个键“名称”和“国家/地区”及其各自的值存储为要在我的 C# 项目中使用的变量。

对上述要求的任何建议

标签: c#config

解决方案


您最好的选择是首先准备一个用于数据的对象。IE

public class FileConfigData 
{ 
  public string Name { get; set; }
  public string Country {get; set; }
}

然后只需使用任何 json 序列化程序将 JSON 转换为对象。这是 json.Net lib 的示例: var configData = JsonConvert.DeserializeObject(File.ReadAllText(CONFIG_FILE_PATH)));

要将所有文件放入数组中,您可以使用:

string[] fileConfigs = Directory.GetFiles("path/to/dir", "FieServer.config", SearchOption.AllDirectories);

然后像这样迭代数组:

List<FileConfigData> configList = new List<FileConfigData>();
foreach (var file in fileConfigs){
   var configData = JsonConvert.DeserializeObject<FileConfigData>(File.ReadAllText(CONFIG_FILE_PATH)));
configList.Add(configData);
 }

我建议您还检查发布的链接@Willseed 和@Marc 以及https://stackoverflow.com/a/12332495/2483016


推荐阅读