目标:读取某个目录下的所有文件,然后将文件内容(json字符串)转为成对象数组
1. 创建目录对象,获取目录下所有文件对象
主要是使用DirectoryInfo类,和他的GetFiles方法
GetFiles方法会获取一个FileInfo[]文件数组
DirectoryInfo directoryInfo = new DirectoryInfo(@"D:\test");
var fileInfos = directoryInfo.GetFiles();
2. 读取文件内容(json字符串),转为对象
读取文件内容可以使用File.ReadAllText方法
也可以使用FileInfo的OpenText方法
foreach(var fileInfo in fileInfos){
var str = File.ReadAllText(fileInfo.FullName, Encoding.Default);
if (!string.IsNullOrWhiteSpace(str)){
JArray jsonArr = JArray.Parse(str);
List<UserInfo> userInfos = (List<UserInfo>)jsonArr.ToObject(typeof(List<UserInfo>));
}
}
注意json字符串转对象List和转对象 是完全不一样的操作!
- JSON对象,使用JsonConvert.DeserializeObject方法
- JSON数组,使用JArray.Parse方法,先将字符串转为JArray,在使用JArray对象的ToObject方法将JArray对象转为对象数组