Jaya vardhani M Ответов: 0

Динамически продолжайте добавлять значение jarray в jobject


Я пытаюсь создать нижеприведенную структуру json и хотел бы сохранить добавление значений только при определении политики , но как я могу хранить и добавлять новые значения вместе с существующими значениями ? может ли кто-нибудь предоставить образец c# или идею о том, как это сделать ?







Как должен выглядеть вывод

{
  "properties": {
    "displayName": "Cost Management",
    "description": "Policies to enforce low cost storage SKUs",
    "metadata": {
      "category": "Cost Management"
    },
    "parameters": {
      "namePrefix": {
        "type": "String",
        "defaultValue": "myPrefix",
        "metadata": {
          "displayName": "Prefix to enforce on resource names"
        }
      }
    },   // Wanted to add values under policy defination, the complete json //
    "policyDefinitions": [
      {
        "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1",
        "policyDefinitionReferenceId": "Limit_Skus",
        "parameters": {
          "listOfAllowedSKUs": {
            "value": [
              "Standard_GRS",
              "Standard_LRS"
            ]
          }
        }
      },
      {
        "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming",
        "policyDefinitionReferenceId": "Resource_Naming",
        "parameters": {
          "prefix": {
            "value": "[parameters('namePrefix')]"
          },
          "suffix": {
            "value": "-LC"
          }
        }
      }
    ]
  }
}


Что я уже пробовал:

below is the sample code am trying with sample schema 

<pre>if (!blockBlob.Exists())
                        {
                            JObject js = new JObject(
                                new JProperty("properties",
                                new JObject(
                                    new JProperty("displayName", (object)jobject["properties"]["displayName"]),
                                    new JProperty("description", (object)jobject["properties"]["description"]),
                                    new JProperty("policyDefinations",
                                    new JArray(new JObject(
                                        new JProperty("assignedBy", "jaya")))) //,
                                     /*   new JProperty("policydefID", "id")*/)));
                            modifiedfile = js.ToString();
                            await blockBlob.UploadTextAsync(modifiedfile);
                            Console.WriteLine(file);
                        }
                        else
                        {

                            var ms = new MemoryStream();
                            var policyData = blockBlob.DownloadText();

                            var currentJObject = JObject.Parse(policyData);
                            var currentArray = (JArray)currentJObject["properties"]["policyDefinations"];

                            var data = JsonConvert.DeserializeObject<PolicyJsonEntity>(policyData);

                            currentArray.AddAfterSelf(new JObject(
                                   new JArray(new JObject(
                                       new JProperty("assignedBy", "jaya")))));

0 Ответов