c# Visual Studio 2017, как добавить json элементы массива объектов к существующим json - PullRequest
0 голосов
/ 31 марта 2020

У меня есть json пример "TestConfigIdMapping. json":

{
  "schema": "None",
  "TestMapping": [
    {
      "testId": "test_1",
      "testConfigs": [
        "platform1",
        "platform2",
        "platform3",
      ]
    },
    {
      "testId": "test_2",
      "testConfigs": [
        "platform2"
      ]
    }
  ]
}

Использование библиотеки Newtonsoft. Json c#, как бы я добавил json элемент объекта:

{
 "testId": "test_3",
 "testConfigs": [
   "platform1",
   "platform3"
  ]
}

к указанному выше уже загруженному json файлу?

Мой код с использованием формы 1 и отображением json в форме 2:

    class JsonTestMapping
    {
        [JsonProperty("schema")]
        string Schema = "None";
        [JsonProperty("TestConfigMapping")]
        public JsonObjects[] testConfigMapping { get; set; }
    }
    class JsonObjects
    {
        [JsonProperty("testId")]
        public string TestId { get; set; }
        [JsonProperty("testConfigs")]
        public string[] TestConfigs { get; set; }
    }
    class LoadJson
    {
        public string jsonValues = File.ReadAllText(@"C:\GITTest\TestIdConfigMapping.json");
    }


JsonObjects jsonObjects = new JsonObjects()
            {
                TestId = f1.Form1textbox.Text,
                TestConfigs = new string[]
                {
                    // set FormTextbox2 modifier = public
                    f1.FormTextbox2.Text
                }
            };

Ниже приводится всплывающее окно формы 2 и отображаются json:

private void Form2_Load(object sender, EventArgs e)
        {
            Form2TextBox.ReadOnly = true;
            Form2TextBox.Multiline = true;
            Form2TextBox.ScrollBars = ScrollBars.Vertical;
            Form2TextBox.WordWrap = true;
            //string convertJsonFileSerialized = JsonConvert.SerializeObject(readJsonFile.jsonText);
            //List<ReadJsonFile> convertJsonFileDeserialized = JsonConvert.DeserializeObject<List<ReadJsonFile>>(readJsonFile.jsonText);
            //string finalJson = JsonConvert.SerializeObject(convertJsonFileDeserialized);

            LoadJson loadJson = new LoadJson();
            string myJsonValues = loadJson.jsonValues;
            JObject rss = JObject.Parse(myJsonValues);
            JArray TestConfigMapping = (JArray)rss["TestConfigMapping"];

            //List<JsonObjects> myList = JsonConvert.DeserializeObject<List<JsonObjects>>(myjsonRead);


            JsonObjects jsonObjects = new JsonObjects()
            {
                TestId = f1.Form1textbox.Text,
                TestConfigs = new string[]
                {
                    // set FormTextbox2 modifier = public
                    f1.FormTextbox2.Text
                }
            };
            List<JsonObjects> jsonList = new List<JsonObjects>();
            jsonList.Add(jsonObjects);
            string jsonResult1 = JsonConvert.SerializeObject(jsonObjects, Formatting.Indented);

            JsonTestMapping jsonTestConfigMapping = new JsonTestMapping()
            {
                testConfigMapping = new JsonObjects[]
                {
                    jsonObjects
                }
            };
            string jsonResult = JsonConvert.SerializeObject(jsonTestConfigMapping, Formatting.Indented);
            //ReadJsonFile readJsonFile = new ReadJsonFile();
            //string jsonResult2 = readJsonFile.jsonText;
            Form2TextBox.Text = rss.ToString();
        }

Цель состоит в том, чтобы иметь форму 1 с двумя полями ввода в текстовом поле, которые вставляют «TestID» и «TestConfigs». После нажатия кнопки 1 преобразуйте 2 введенных текста в формат Json, а после нажатия кнопки «добавить» подтвердите форматированный элемент объекта Json в уже существующей конфигурации файла json.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...