首页 > 解决方案 > .netcore ant .Net3.5 的 Json 序列化器

问题描述

是否有在 .netcore 和 .Net3.5 中工作的 json 序列化程序库?

我需要在多平台项目中使用库,问题是 Newtonsoft 的库仅适用于 .Net Framework,而 System.Text.Json 仅适用于 .netcore。

** 我试过 Json.Net 但没有运气。我在所有库上都收到这种错误:

在此处输入图像描述

标签: c#.netjson.net-core

解决方案


您可以使用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);

希望这可以帮助。

谢谢你。


推荐阅读