Json的底层实现一览

在开始了解Json的原理之前,首先看一段代码,在这里以阿里的FastJson为例。

1
2
3
4
5
6
7
8
public class JsonRun {
public static void main(String[] args) {
JSONObject jsonObject =new JSONObject();
jsonObject.put("id","a");
jsonObject.put("name","b");
System.out.println(jsonObject.toJSONString());
}
}

当看到上述代码的时候,可能一般的程序员都会想到的是输出为如下Json

{“id”:”a”,”name”:”b”}
但是运行这段程序,你会发现控制台打印出来的是如下代码:
{“name”:”b”,”id”:”a”}

那么为什么会出现这种情况呢,翻开FastJson的源码便知道了,首先定位到 JsonObject 这个类的构造函数,如下:

阅读更多