使用C#获得JSON.NET的属性名称



我一直在编码一个Minecraft Launcher供我个人使用(来源)。我已经达到了需要解析包含官方发射器已经制作的所有可用"配置文件"的JSON文件的地步。看起来这样:

{
  "profiles": {
    "1.6.2": {
      "name": "1.6.2",
      "gameDir": "C:\Users\Ilan\AppData\Roaming\.ilan\1.6.2mc",
      "lastVersionId": "1.6.2",
      "allowedReleaseTypes": [
        "snapshot",
        "release"
      ],
      "playerUUID": "e2f423057b72487eb6f7f8ce877a8015"
    },
    "1.6.1": {
      "name": "1.6.1",
      "gameDir": "C:\Users\Ilan\AppData\Roaming\.ilan\1.6.1",
      "lastVersionId": "1.6.1"
    },
    "13w38c": {
      "name": "13w38c",
      "lastVersionId": "13w38c",
      "javaArgs": "-Xmx1G",
      "allowedReleaseTypes": [
        "snapshot",
        "release"
      ],
      "playerUUID": "e2f423057b72487eb6f7f8ce877a8015",
      "useHopperCrashService": false
    },

如您所见,有一个称为"配置文件"的对象,其中有具有可变名称的属性。我想获取这些属性的名称,而不是它们的价值观。我不知道该怎么做,我尝试了Value或仅仅是配置文件.ToString(),但是这两个结果都赋予我属性本身的内容,而不是其名称。有没有办法获取名字?
编辑:解析配置文件JSON的代码是:

    string profileJSON = File.ReadAllText(Variables.profileJSONFile);
    JObject profiles = JObject.Parse(profileJSON);
    MessageBox.Show(profiles["profiles"].ToString());
    foreach (JProperty profileAvail in profiles["profiles"])
    {
        MessageBox.Show(profileAvail.ToString());
    }

使用Name属性:

获取属性名称。

public string Name { get; }

MessageBox.Show(profileAvail.Name);
  Idictionary≪字符串,jtoken>json = jobign.parse(strjson);   foreach(json中的var kv)     {        Console.Writeline(kv.key);     }

相关内容

  • 没有找到相关文章

最新更新