Does .NET 4 have a built-in JSON serializer/deserializer?

后端 未结 4 1495
遇见更好的自我
遇见更好的自我 2020-11-28 07:06

Does .NET 4 come with any class that serializes/deserializes JSON data?

  • I know there are 3rd-party libraries, such as JSON.NET, but I am looking for somethi

相关标签:
4条回答
  • 2020-11-28 07:43

    Use this generic class in order to serialize / deserialize JSON. You can easy serialize complex data structure like this:

    Dictionary<string, Tuple<int, int[], bool, string>>
    

    to JSON string and then to save it in application setting or else

    public class JsonSerializer
    {
        public string Serialize<T>(T aObject) where T : new()
        {
            T serializedObj = new T();
            MemoryStream ms = new MemoryStream(); 
            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
            ser.WriteObject(ms, aObject);
            byte[] json = ms.ToArray();
            ms.Close();
            return Encoding.UTF8.GetString(json, 0, json.Length);
        }
    
        public T Deserialize<T>(string aJSON) where T : new()
        {
            T deserializedObj = new T();
            MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(aJSON));
            DataContractJsonSerializer ser = new DataContractJsonSerializer(aJSON.GetType());
            deserializedObj = (T)ser.ReadObject(ms);
            ms.Close();
            return deserializedObj;
        }
    }
    
    0 讨论(0)
  • 2020-11-28 08:01

    .NET4 has a built-in JSON Class,such as DataContractJsonSerializer ,but it is very weak,it doesn't support multidimentional array. I suggest you use JSON.Net

    0 讨论(0)
  • 2020-11-28 08:06

    You can use the DataContractJsonSerializer class anywhere you want, it is just a .net class and is not limited to WCF. More info on how to use it here and here.

    0 讨论(0)
  • 2020-11-28 08:09

    There's the JavaScriptSerializer class (although you will need to reference the System.Web.Extensions assembly the class works perfectly fine in WinForms/WPF applications). Also even if the DataContractJsonSerializer class was designed for WCF it works fine in client applications.

    0 讨论(0)
提交回复
热议问题