src/JsonSerializer.cs

(开头部分) 1KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.IO;

namespace Rapidity.Json
{
    public class JsonSerializer
    {
        public JsonOption Option { get; }

        public JsonSerializer() : this(new JsonOption { SkipValidated = true })
        {
        }

        public JsonSerializer(JsonOption option)
        {
            Option = option ?? throw new ArgumentNullException(nameof(option));
        }

        public object Deserialize(JsonReader reader, Type type)
        {
            var convert = Option.ConverterProvider.Build(type);
            return convert.FromReader(reader, Option);
        }


        public T Deserialize<T>(JsonReader reader)
        {
            return (T)Deserialize(reader, typeof(T));
        }

        public object Deserialize(JsonToken token, Type type)
        {
            var convert = Option.ConverterProvider.Build(type);
            return convert.FromToken(token, Option);
        }


        public T Deserialize<T>(JsonToken token)
        {
            return (T)Deserialize(token, typeof(T));
        }

        public string Serialize(object obj)
        {
            using (var sw = new StringWriter())
            using (var writer = new JsonWriter(sw, Option))
            {
                Serialize(writer, obj);
                sw.Flush();
                return sw.ToString();
            }
        }

        public void Serialize(JsonWriter writer, object obj)
        {
            if (obj == null)
            {
                writer.WriteNull();
                return;
            }
后面还有 6 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。