Разбор файла JSON C # - PullRequest
       1

Разбор файла JSON C #

0 голосов
/ 17 января 2012

У меня есть следующий JSON, который я хочу проанализировать в C #. Я стараюсь избегать внешних библиотек, но если мне нужно, я могу их использовать. Сейчас я использую метод JavaScriptSerializer для анализа файла JSON после ответа на другой вопрос stackoverflow К сожалению, у меня может быть любое количество объектов objectX в разделе "Ресурсы", и все они имеют разные имена. Есть ли другой способ сделать это?

{
    "FormatVersion" : "2010-09-09",
    "Description" : "My JSON Description",
    "Parameters" : {
        "Product" : {
            "Description" : "Product name",
            "Type" : "String",
            "Default" : "cs42"
        },
        "DifferentObjectSize" : {
            "Description" : "DifferentObjectSize",
            "Type" : "String",
            "Default" : "large"
        },
        "ObjectSize" : {
            "Description" : "Worker size",
            "Type" : "String",
            "Default" : "medium"
        }
     },

    "Resources" : {

        "differentobject" : {
          "Type" : "MyType",
          "Properties" : {
            "InstanceType" : { "Ref" : "DifferentObjectSize" }
          }
        },

        "object1" : {
          "Type" : "MyType",
          "Properties" : {
            "InstanceType" : { "Ref" : "ObjectSize" }
          }
        },

        "object2" : {
          "Type" : "MyType",
          "Properties" : {
            "InstanceType" : { "Ref" : "ObjectSize" }
          }
        },

        "object3" : {
          "Type" : "MyType",
          "Properties" : {
            "InstanceType" : { "Ref" : "ObjectSize" }
          }
        },

        "object4" : {
          "Type" : "MyType",
          "Properties" : {
            "InstanceType" : { "Ref" : "ObjectSize" }
          }
        },

    }
}

1 Ответ

4 голосов
/ 17 января 2012

Если вы думаете использовать Json.Net , вы можете проанализировать вашу входную строку, как показано ниже

JObject myObj = (JObject)JsonConvert.DeserializeObject(jsonString);
foreach(var resource in myObj["Resources"])
{
    var props = resource.Children<JObject>().First();
    Console.WriteLine(props["Type"] + " " + props["Properties"]["InstanceType"]["Ref"]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...