using System;

namespace VCommon.Json
{
    public interface IVJsonSerializer
    {
        /// <summary> 反序列化: 如果传入json为null则返回T的默认值 </summary>
        T DeserializeObject<T>(string json);

        /// <summary> 反序列化匿名类型: 如果传入json为null则返回T的默认值 </summary>
        T DeserializeAnonymousTypeObject<T>(string json, T anon = default(T));

        /// <summary> 反序列化: 按指定类型, 如果传入的json为null则返回该类型的默认值 </summary>
        object DeserializeObject(string json, Type type);

        /// <summary> 序列化 </summary>
        string SerializeObject(object obj);
    }
}
