﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ServerVue.JsonModels
{
    public abstract class JsonToken : IJsonToken
    {
        /// <summary>
        /// JSON化时所序列化的目标
        /// </summary>
        internal abstract Object StringifyTarget { get; }

        public string ToJson()
        {
            return JsonParser.Stringify(this.StringifyTarget);
        }

        protected JsonToken AsJsonToken(IJsonToken token)
        {
            if (!(token is JsonToken)) throw new InvalidCastException();
            return (JsonToken)token;
        }
    }
}
