У меня есть 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.