public List<string> MyJsonDeserializer(string filename)
{
//get json data
Stream fs = new FileStream(filename, FileMode.Open);
string jsonData = new StreamReader(fs).ReadToEnd();
fs.Close();
//deserialize json data to c# list
JavaScriptSerializer serializer = new JavaScriptSerializer();
return (List<string>)serializer.Deserialize(jsonData, typeof(List<string>));
}
6条答案
按热度按时间pzfprimi1#
就这么做
u1ehiz5o2#
您可以将字符串数据转换为
bytes[]
,将其 Package 在MemoryStream
中,并使用DataContractJsonSerializer
进行反序列化:6ojccjat3#
你可以使用Json。Net中,确保导入
Newtonsoft.Json
命名空间并反序列化JSON,如下所示
输出
工作演示:https://dotnetfiddle.net/4OLS2v
oyxsuwqo4#
好的我知道了
使用系统。Web.脚本.序列化;
yhived7q5#
System. out. println();List stringList = serializer。sort〉(sort);
pbpqsu0x6#
现代C#:
System.Text.Json
自.NET Core 3。1 .NET附带了
System.Text.Json
命名空间,它允许JSON(反)序列化,而无需使用任何库。关于Microsoft documentation:
System.Text.Json
命名空间提供了将JavaScript对象表示法(JSON)序列化和反序列化的功能。System.Text.Json
库包含在的运行时中。NET Core 3.1及更高版本。其他目标框架请安装**System.Text.Json
NuGet包**。该软件包支持:要反序列化,您需要使用您选择的适当类型,该类型可以保存多个值,如e。g
IEnumerable<string>
、List<string>
、IReadOnlyCollection<string>
等。最适合您需要的数据类型。使用C# 11和。NET 7中,你现在可以使用原始字符串文字,这使得在代码中声明JSON更容易,更可读,你不需要转义每个
"
。预期输出:
有关如何从
Newtonsoft.Json
迁移到System.Text.Json
,请参阅Microsoft documentation。