C#解析Json文件成List<>数据后,修改其中数值,保存到Json文件中
时间: 2024-02-28 11:55:14 浏览: 138
2.1.6 C++和C#数据传递 -vectorofvectorofInt传递
假设你有一个JSON文件,其中包含一个数组,你想要将其反序列化为一个`List<T>`类型的对象,然后修改其中的数据并将其保存回JSON文件中。下面是一个示例代码:
```csharp
using System.Collections.Generic;
using System.IO;
using Newtonsoft.Json;
// 定义一个数据模型
public class MyDataModel
{
public int Id { get; set; }
public string Name { get; set; }
}
// 读取JSON文件
string json = File.ReadAllText("data.json");
// 反序列化JSON数据为List<MyDataModel>类型
var dataList = JsonConvert.DeserializeObject<List<MyDataModel>>(json);
// 修改数据
foreach (var data in dataList)
{
if (data.Id == 1)
{
data.Name = "new name";
}
}
// 将修改后的数据序列化为JSON格式
json = JsonConvert.SerializeObject(dataList, Formatting.Indented);
// 保存到文件
File.WriteAllText("data.json", json);
```
在这个示例中,我们首先定义了一个名为`MyDataModel`的类,它表示JSON中的单个数据对象。然后我们使用`JsonConvert.DeserializeObject`方法将JSON文件反序列化为一个`List<MyDataModel>`对象。接着,我们遍历这个对象并修改其中的数据。最后,我们使用`JsonConvert.SerializeObject`方法将修改后的数据序列化为JSON格式并保存回文件中。
需要注意的是,如果JSON文件中的数组中包含的是一个匿名对象,而不是一个具体的类对象,那么你可以使用`List<dynamic>`类型来反序列化JSON数据。
阅读全文