How do I de/serialize JSON in WinRT?

前端 未结 3 1215
灰色年华
灰色年华 2020-12-08 05:10

How do I take an object and convert it to a JSON string and then back into that object from a string, specifically, in WinRT for my Windows 8 Metro application?

3条回答
  •  孤街浪徒
    2020-12-08 06:00

    Like this:

    using System.IO;
    using System.Runtime.Serialization.Json;
    using System.Text;
    
    public static T Deserialize(string json)
    {
        var _Bytes = Encoding.Unicode.GetBytes(json);
        using (MemoryStream _Stream = new MemoryStream(_Bytes))
        {
            var _Serializer = new DataContractJsonSerializer(typeof(T));
            return (T)_Serializer.ReadObject(_Stream);
        }
    }
    
    public static string Serialize(object instance)
    {
        using (MemoryStream _Stream = new MemoryStream())
        {
            var _Serializer = new DataContractJsonSerializer(instance.GetType());
            _Serializer.WriteObject(_Stream, instance);
            _Stream.Position = 0;
            using (StreamReader _Reader = new StreamReader(_Stream)) 
            { return _Reader.ReadToEnd(); }
        }
    }
    

提交回复
热议问题