自制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 的隐式转换直接放里了,虽然违反了那啥啥啥定理,但是为了方便,就管不了那么多了

浙公网安备 33010602011771号