c# - .netcore ant .Net3.5 的 Json 序列化器
问题描述
是否有在 .netcore 和 .Net3.5 中工作的 json 序列化程序库?
我需要在多平台项目中使用库,问题是 Newtonsoft 的库仅适用于 .Net Framework,而 System.Text.Json 仅适用于 .netcore。
** 我试过 Json.Net 但没有运气。我在所有库上都收到这种错误:
解决方案
您可以使用DataContractJsonSerializer
我在我的 .net 标准库中使用它来将我的模型对象序列化和反序列化为 json。
public static string PrepareJsonString<T>(object objectToBeParsed)
{
DataContractJsonSerializer dataContractSerializer = new DataContractJsonSerializer(typeof(T));
string json = string.Empty;
using (var ms = new MemoryStream())
{
dataContractSerializer.WriteObject(ms, (T)objectToBeParsed);
ms.Position = 0;
StreamReader sr = new StreamReader(ms);
json = sr.ReadToEnd();
}
return json;
}
public static object PrepareObjectFromString<T>(string json)
{
DataContractJsonSerializer dataContractSerializer = new DataContractJsonSerializer(typeof(T));
using (var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(json)))
{
var deSerializedUser = dataContractSerializer.ReadObject(memoryStream);
return deSerializedUser;
}
}
使用此功能的示例
List<MyModel> list= PrepareObjectFromString<List<MyModel>>(myJson);
or
MyModel list= PrepareObjectFromString<MyModel>(myJson);
string json=PrepareJsonString<MyModel>(myModelInstance);
希望这可以帮助。
谢谢你。
推荐阅读
- boto3 - 如何使用 boto3 获取所有快照详细信息?
- debugging - 如果 Visual Query 在调试过程中完美运行,但 cshtml 代码无法访问数据,我该如何调试 2sxc 的工作?
- sql-server - How to propagate Always encrypted column encryption to Test, Acceptance and Production?
- macos - How to map memory in DriverKit using IOMemoryDescriptor::CreateMapping?
- parse-platform - 删除 PFObject 上的键的值
- r - Grouping and the adding column to a data.table
- python - 黑盒可能性示例
- javascript - 我的字符串在我的 console.log 中分成多行,但在我的 html 中没有
- c - 在 CLion 上运行调试和构建之间的区别
- java - 下界通配符法