自制Json 类库之 Json

自制Json 类库之 Json

自制的理由:

1.我自己是个喜欢刨根问底的人

2.自制的类库能充分理类库构造、功能,可以更好的掌握

故:该篇介绍如何写自己的Json 类库。

 

Json(JavaScript Object Notation) 是一种轻量级的数据交换格式

Json 语法规则

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

Json 值可以是:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • 函数
  • null

 

Json 代码:

public abstract class Json
    {
        public static implicit operator Json(byte value)
        {
            return new JsonValue(value);
        }

        public static implicit operator Json(sbyte value)
        {
            return new JsonValue(value);
        }

        public static implicit operator Json(short value)
        {
            return new JsonValue(value);
        }

        public static implicit operator Json(ushort value)
        {
            return new JsonValue(value);
        }

        public static implicit operator Json(int value)
        {
            return new JsonValue(value);
        }

        public static implicit operator Json(uint value)
        {
            return new JsonValue(value);
        }

        public static implicit operator Json(long value)
        {
            return new JsonValue(value);
        }

        public static implicit operator Json(ulong value)
        {
            return new JsonValue(value);
        }

        public static implicit operator Json(float value)
        {
            return new JsonValue(value);
        }

        public static implicit operator Json(double value)
        {
            return new JsonValue(value);
        }

        public static implicit operator Json(decimal value)
        {
            return new JsonValue(value);
        }

        public static implicit operator Json(bool value)
        {
            return new JsonValue(value);
        }

        public static implicit operator Json(char value)
        {
            return new JsonValue(value);
        }

        public static implicit operator Json(string value)
        {
            return new JsonValue(value);
        }

        public static implicit operator Json(TimeSpan value)
        {
            return new JsonValue(value);
        }

        public static implicit operator Json(DateTime value)
        {
            return new JsonValue(value);
        }

        public static implicit operator Json(Guid value)
        {
            return new JsonValue(value);
        }

        public static Json Parse(string text)
        {
            return JsonParse.Parse(text);
        }
    }

把值类型到Json 的隐式转换直接放里了,虽然违反了那啥啥啥定理,但是为了方便,就管不了那么多了

 

posted @ 2014-12-09 13:54  忤逆小旭  阅读(176)  评论(0)    收藏  举报