c# - c#Visual Studio 2017如何将json对象数组元素添加到现有json
问题描述
我有 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文件?
我的代码使用form1并在form2中显示json:
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
}
};
下面是Form2弹窗并显示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,其中包含 2 个插入“TestID”和“TestConfigs”的文本框输入。单击 button1 后,将 2 个输入文本转换为 Json 格式,然后单击“附加”按钮,将格式化的 Json 对象元素断言到已经存在的 json 文件配置中。
解决方案
推荐阅读
- android - 尝试将图像上传到驱动器时,在 onSuccessListner 中收到错误
- javascript - vuejs 组件中 props 的深度反应性
- node.js - 从节点+快递+本地连接到heroku postgres的问题
- r - 嘿,如何调整 ggsurvplot 中生存曲线的粗细?
- graphql - 在 Apollo GraphQL 客户端中突变成功后重新获取查询
- python - 从python中的字节转换epoch int
- ruby - Docker Ruby 2.6.6-alpine 是 Ruby-2.6.5-alpine 的两倍
- javascript - 搜索栏未过滤本机反应的结果
- python - Python子进程堆叠
- swift - 将变量存储到内存 Swift