简介
Fastjson是一个Java语言编写的高性能功能完善的JSON库。
高性能
fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson。并且还超越了google的二进制协议protocol buf。
支持标准
- Fastjson完全支持http://json.org的标准,也是官方网站收录的参考实现之一。
功能强大
- 支持各种JDK类型。包括基本类型、JavaBean、Collection、Map、Enum、泛型等。
- 支持循环引用
无依赖
支持范围广
- 支持JDK 5、JDK 6、Android、阿里云手机等环境。
开源
- Apache License 2.0
- 代码托管在github.org上,项目地址是https://github.com/AlibabaTech/fastjson
测试充分
- fastjson有超过1500个testcase,每次构建都会跑一遍,丰富的测试场景保证了功能稳定。
获得fastjson
下载
http://code.alibabatech.com/mvn/releases/com/alibaba/fastjson/
http://www.qdmm.com/BookReader/1156129,22578913.aspx http://www.qdmm.com/BookReader/1156129,22579028.aspx http://www.qdmm.com/BookReader/1156129,22595140.aspx http://www.qdmm.com/BookReader/1156129,22604448.aspx http://www.qdmm.com/BookReader/1156129,22613649.aspx http://www.qdmm.com/BookReader/1156129,22622391.aspx http://www.qdmm.com/BookReader/1156129,22631363.aspx http://www.qdmm.com/BookReader/1156129,22638165.aspx http://www.qdmm.com/BookReader/1156129,22650866.aspx http://www.qdmm.com/BookReader/1156129,22660285.aspx http://www.qdmm.com/BookReader/1156129,22670340.aspx http://www.qdmm.com/BookReader/1156129,22680130.aspx http://www.qdmm.com/BookReader/1156129,22690667.aspx http://www.qdmm.com/BookReader/1156129,22710173.aspx http://www.qdmm.com/BookReader/1156129,22710564.aspx http://www.qdmm.com/BookReader/1156129,22720305.aspx http://www.qdmm.com/BookReader/1156129,22730045.aspx http://www.qdmm.com/BookReader/1156129,22739669.aspx http://www.qdmm.com/BookReader/1156129,22750227.aspx http://www.qdmm.com/BookReader/1156129,22759666.aspx http://www.qdmm.com/BookReader/1156129,22771650.aspx http://www.qdmm.com/BookReader/1156129,22779951.aspx http://www.qdmm.com/BookReader/1156129,22790657.aspx http://www.qdmm.com/BookReader/1156129,22801936.aspx http://www.qdmm.com/BookReader/1156129,22813702.aspx http://www.qdmm.com/BookReader/1156129,22823561.aspx http://www.qdmm.com/BookReader/1156129,22833721.aspx http://www.qdmm.com/BookReader/1156129,22844259.aspx http://www.qdmm.com/BookReader/1156129,22852529.aspx http://www.qdmm.com/BookReader/1156129,22864229.aspx http://www.qdmm.com/BookReader/1156129,22871848.aspx http://www.qdmm.com/BookReader/1156129,22883965.aspx http://www.qdmm.com/BookReader/1156129,22892229.aspx http://www.qdmm.com/BookReader/1156129,22903283.aspx http://www.qdmm.com/BookReader/1156129,22908797.aspx http://www.qdmm.com/BookReader/1156129,22913070.aspx http://www.qdmm.com/BookReader/1156129,22922450.aspx http://www.qdmm.com/BookReader/1156129,22934979.aspx http://www.qdmm.com/BookReader/1156129,22945753.aspx http://www.qdmm.com/BookReader/1156129,22956604.aspx http://www.qdmm.com/BookReader/1156129,22965281.aspx http://www.qdmm.com/BookReader/1156129,22976097.aspx http://www.qdmm.com/BookReader/1156129,22985473.aspx http://www.qdmm.com/BookReader/1156129,22995764.aspx http://www.qdmm.com/BookReader/1156129,23008243.aspx http://www.qdmm.com/BookReader/1156129,23019157.aspx http://www.qdmm.com/BookReader/1156129,55628626.aspx http://www.qdmm.com/BookReader/1156129,55628643.aspx http://www.qdmm.com/BookReader/1156129,55628644.aspx http://www.qdmm.com/BookReader/1156129,55628665.aspx http://www.qdmm.com/BookReader/1156129,55628676.aspx http://www.qdmm.com/BookReader/1156129,55628677.aspx http://www.qdmm.com/BookReader/1156129,55628678.aspx http://www.qdmm.com/BookReader/1156129,55628679.aspx http://www.qdmm.com/BookReader/1156129,55628680.aspx http://www.qdmm.com/BookReader/1156129,55628681.aspx http://www.qdmm.com/BookReader/1156129,55628682.aspx http://www.qdmm.com/BookReader/1156129,55628683.aspx http://www.qdmm.com/BookReader/1156129,55628684.aspx http://www.qdmm.com/BookReader/1156129,55628685.aspx http://www.qdmm.com/BookReader/1156129,55628686.aspx http://www.qdmm.com/BookReader/1156129,55628688.aspx http://www.qdmm.com/BookReader/1156129,55628689.aspx http://www.qdmm.com/BookReader/1156129,55628690.aspx http://www.qdmm.com/BookReader/1156129,55628691.aspx http://www.qdmm.com/BookReader/1156129,55628692.aspx http://www.qdmm.com/BookReader/1156129,55628693.aspx http://www.qdmm.com/BookReader/1156129,55628694.aspx http://www.qdmm.com/BookReader/1156129,55628695.aspx http://www.qdmm.com/BookReader/1156129,55628702.aspx http://www.qdmm.com/BookReader/1156129,55628703.aspx http://www.qdmm.com/BookReader/1156129,55628704.aspx http://www.qdmm.com/BookReader/1156129,55628708.aspx http://www.qdmm.com/BookReader/1156129,55628709.aspx http://www.qdmm.com/BookReader/1156129,55628711.aspx http://www.qdmm.com/BookReader/1156129,55628712.aspx http://www.qdmm.com/BookReader/1156129,55628713.aspx http://www.qdmm.com/BookReader/1156129,55628715.aspx http://www.qdmm.com/BookReader/1156129,55628723.aspx http://www.qdmm.com/BookReader/1156129,55628729.aspx http://www.qdmm.com/BookReader/1156129,55628730.aspx http://www.qdmm.com/BookReader/1156129,55628731.aspx http://www.qdmm.com/BookReader/1156129,55628732.aspx http://www.qdmm.com/BookReader/1156129,55628733.aspx http://www.qdmm.com/BookReader/1156129,55628735.aspx http://www.qdmm.com/BookReader/1156129,55628736.aspx http://www.qdmm.com/BookReader/1156129,55628738.aspx http://www.qdmm.com/BookReader/1156129,55628739.aspx http://www.qdmm.com/BookReader/1156129,55628740.aspx http://www.qdmm.com/BookReader/1156129,55628741.aspx http://www.qdmm.com/BookReader/1156129,55628742.aspx http://www.qdmm.com/BookReader/1156129,55628743.aspx http://www.qdmm.com/BookReader/1156129,55628744.aspx http://www.qdmm.com/BookReader/1156129,55628760.aspx http://www.qdmm.com/BookReader/1156129,55628795.aspx http://www.qdmm.com/BookReader/1156129,55628796.aspx http://www.qdmm.com/BookReader/1156129,55628797.aspx http://www.qdmm.com/BookReader/1156129,55628798.aspx http://www.qdmm.com/BookReader/1156129,55628799.aspx http://www.qdmm.com/BookReader/1156129,55628800.aspx http://www.qdmm.com/BookReader/1156129,55628809.aspx http://www.qdmm.com/BookReader/1156129,55628828.aspx http://www.qdmm.com/BookReader/1156129,55628830.aspx http://www.qdmm.com/BookReader/1156129,55628875.aspx http://www.qdmm.com/BookReader/1156129,55628876.aspx http://www.qdmm.com/BookReader/1156129,55628891.aspx http://www.qdmm.com/BookReader/1156129,55628892.aspx http://www.qdmm.com/BookReader/1156129,55628893.aspx http://www.qdmm.com/BookReader/1156129,55628894.aspx http://www.qdmm.com/BookReader/1156129,55628895.aspx http://www.qdmm.com/BookReader/1156129,55628896.aspx http://www.qdmm.com/BookReader/1156129,55628897.aspx http://www.qdmm.com/BookReader/1156129,55628898.aspx http://www.qdmm.com/BookReader/1156129,55628899.aspx http://www.qdmm.com/BookReader/1156129,55628911.aspx http://www.qdmm.com/BookReader/1156129,55628913.aspx http://www.qdmm.com/BookReader/1156129,55628916.aspx http://www.qdmm.com/BookReader/1156129,55628918.aspx http://www.qdmm.com/BookReader/1156129,55628919.aspx http://www.qdmm.com/BookReader/1156129,55628920.aspx http://www.qdmm.com/BookReader/1156129,55628921.aspx http://www.qdmm.com/BookReader/1156129,55628922.aspx http://www.qdmm.com/BookReader/1156129,55628927.aspx http://www.qdmm.com/BookReader/1156129,55628928.aspx http://www.qdmm.com/BookReader/1156129,55628929.aspx http://www.qdmm.com/BookReader/1156129,55628930.aspx http://www.qdmm.com/BookReader/1156129,55628932.aspx http://www.qdmm.com/BookReader/1156129,55628933.aspx http://www.qdmm.com/BookReader/1156129,55628934.aspx http://www.qdmm.com/BookReader/1156129,55628935.aspx http://www.qdmm.com/BookReader/1156129,55628936.aspx http://www.qdmm.com/BookReader/1156129,55628938.aspx http://www.qdmm.com/BookReader/1156129,55628939.aspx http://www.qdmm.com/BookReader/1156129,55628940.aspx http://www.qdmm.com/BookReader/1156129,55628943.aspx http://www.qdmm.com/BookReader/1156129,55628945.aspx http://www.qdmm.com/BookReader/1156129,55628950.aspx http://www.qdmm.com/BookReader/1156129,55628951.aspx http://www.qdmm.com/BookReader/1156129,55628955.aspx http://www.qdmm.com/BookReader/1156129,55628958.aspx http://www.qdmm.com/BookReader/1156129,55628959.aspx http://www.qdmm.com/BookReader/1156129,55628960.aspx http://www.qdmm.com/BookReader/1156129,55628961.aspx http://www.qdmm.com/BookReader/1156129,55628962.aspx http://www.qdmm.com/BookReader/1156129,55628963.aspx http://www.qdmm.com/BookReader/1156129,55628964.aspx http://www.qdmm.com/BookReader/1156129,55628965.aspx http://www.qdmm.com/BookReader/1156129,55628966.aspx http://www.qdmm.com/BookReader/1156129,55628967.aspx http://www.qdmm.com/BookReader/1156129,55628968.aspx http://www.qdmm.com/BookReader/1156129,55628969.aspx http://www.qdmm.com/BookReader/1156129,55628970.aspx http://www.qdmm.com/BookReader/1156129,55628971.aspx http://www.qdmm.com/BookReader/1156129,55628973.aspx http://www.qdmm.com/BookReader/1156129,55628974.aspx http://www.qdmm.com/BookReader/1156129,55628975.aspx http://www.qdmm.com/BookReader/1156129,55628976.aspx http://www.qdmm.com/BookReader/1156129,55628977.aspx http://www.qdmm.com/BookReader/1156129,55628978.aspx http://www.qdmm.com/BookReader/1156129,55628979.aspx http://www.qdmm.com/BookReader/1156129,55628980.aspx http://www.qdmm.com/BookReader/1156129,55628981.aspx http://www.qdmm.com/BookReader/1156129,55628983.aspx http://www.qdmm.com/BookReader/1156129,55628987.aspx http://www.qdmm.com/BookReader/1156129,55628988.aspx http://www.qdmm.com/BookReader/1156129,55628989.aspx http://www.qdmm.com/BookReader/1156129,55628990.aspx http://www.qdmm.com/BookReader/1156129,55628991.aspx http://www.qdmm.com/BookReader/1156129,55628992.aspx http://www.qdmm.com/BookReader/1156129,55628993.aspx http://www.qdmm.com/BookReader/1156129,55628994.aspx http://www.qdmm.com/BookReader/1156129,55628996.aspx http://www.qdmm.com/BookReader/1156129,55628997.aspx http://www.qdmm.com/BookReader/1156129,55629000.aspx http://www.qdmm.com/BookReader/1156129,55629001.aspx http://www.qdmm.com/BookReader/1156129,55629002.aspx http://www.qdmm.com/BookReader/1156129,55629003.aspx http://www.qdmm.com/BookReader/1156129,55629004.aspx http://www.qdmm.com/BookReader/1156129,55629005.aspx http://www.qdmm.com/BookReader/1156129,55629006.aspx http://www.qdmm.com/BookReader/1156129,55629007.aspx http://www.qdmm.com/BookReader/1156129,55629008.aspx http://www.qdmm.com/BookReader/1156129,55629011.aspx http://www.qdmm.com/BookReader/1156129,55629014.aspx http://www.qdmm.com/BookReader/1156129,55629015.aspx http://www.qdmm.com/BookReader/1156129,55629016.aspx http://www.qdmm.com/BookReader/1156129,55629017.aspx http://www.qdmm.com/BookReader/1156129,55629018.aspx http://www.qdmm.com/BookReader/1156129,55629019.aspx http://www.qdmm.com/BookReader/1156129,55629020.aspx http://www.qdmm.com/BookReader/1156129,55629021.aspx http://www.qdmm.com/BookReader/1156129,55629022.aspx http://www.qdmm.com/BookReader/1156129,55629023.aspx http://www.qdmm.com/BookReader/1156129,55629028.aspx http://www.qdmm.com/BookReader/1156129,55629029.aspx http://www.qdmm.com/BookReader/1156129,55629030.aspx http://www.qdmm.com/BookReader/1156129,55629031.aspx http://www.qdmm.com/BookReader/1156129,55629032.aspx http://www.qdmm.com/BookReader/1156129,55629033.aspx http://www.qdmm.com/BookReader/1156129,55629034.aspx http://www.qdmm.com/BookReader/1156129,55629035.aspx http://www.qdmm.com/BookReader/1156129,55629036.aspx http://www.qdmm.com/BookReader/1156129,55629037.aspx http://www.qdmm.com/BookReader/1156129,55629039.aspx http://www.qdmm.com/BookReader/1156129,55629040.aspx http://www.qdmm.com/BookReader/1156129,55629041.aspx http://www.qdmm.com/BookReader/1156129,55629042.aspx http://www.qdmm.com/BookReader/1156129,55629043.aspx http://www.qdmm.com/BookReader/1156129,55629044.aspx http://www.qdmm.com/BookReader/1156129,55629045.aspx http://www.qdmm.com/BookReader/1156129,55629046.aspx http://www.qdmm.com/BookReader/1156129,55629047.aspx http://www.qdmm.com/BookReader/1156129,55629048.aspx http://www.qdmm.com/BookReader/1156129,55629050.aspx http://www.qdmm.com/BookReader/1156129,55629051.aspx http://www.qdmm.com/BookReader/1156129,55629052.aspx http://www.qdmm.com/BookReader/1156129,55629053.aspx http://www.qdmm.com/BookReader/1156129,55629054.aspx http://www.qdmm.com/BookReader/1156129,55629055.aspx http://www.qdmm.com/BookReader/1156129,55629056.aspx http://www.qdmm.com/BookReader/1156129,55629057.aspx http://www.qdmm.com/BookReader/1156129,55629058.aspx http://www.qdmm.com/BookReader/1156129,55629059.aspx http://www.qdmm.com/BookReader/1156129,55629061.aspx http://www.qdmm.com/BookReader/1156129,55629062.aspx http://www.qdmm.com/BookReader/1156129,55629064.aspx http://www.qdmm.com/BookReader/1156129,55629065.aspx http://www.qdmm.com/BookReader/1156129,55629066.aspx http://www.qdmm.com/BookReader/1156129,55629067.aspx http://www.qdmm.com/BookReader/1156129,55629068.aspx http://www.qdmm.com/BookReader/1156129,55629069.aspx http://www.qdmm.com/BookReader/1156129,55629070.aspx http://www.qdmm.com/BookReader/1156129,55629071.aspx http://www.qdmm.com/BookReader/1156129,55629073.aspx http://www.qdmm.com/BookReader/1156129,55629074.aspx http://www.qdmm.com/BookReader/1156129,55629075.aspx http://www.qdmm.com/BookReader/1156129,55629076.aspx http://www.qdmm.com/BookReader/1156129,55629077.aspx http://www.qdmm.com/BookReader/1156129,55629078.aspx http://www.qdmm.com/BookReader/1156129,55629079.aspx http://www.qdmm.com/BookReader/1156129,55629080.aspx http://www.qdmm.com/BookReader/1156129,55629081.aspx http://www.qdmm.com/BookReader/1156129,55629082.aspx http://www.qdmm.com/BookReader/1156129,55629085.aspx http://www.qdmm.com/BookReader/1156129,55629086.aspx http://www.qdmm.com/BookReader/1156129,55629087.aspx http://www.qdmm.com/BookReader/1156129,55629088.aspx http://www.qdmm.com/BookReader/1156129,55629090.aspx http://www.qdmm.com/BookReader/1156129,55629091.aspx http://www.qdmm.com/BookReader/1156129,55629092.aspx http://www.qdmm.com/BookReader/1156129,55629093.aspx http://www.qdmm.com/BookReader/1156129,55629094.aspx http://www.qdmm.com/BookReader/1156129,55629095.aspx http://www.qdmm.com/BookReader/1156129,55629096.aspx http://www.qdmm.com/BookReader/1156129,55629097.aspx http://www.qdmm.com/BookReader/1156129,55629098.aspx http://www.qdmm.com/BookReader/1156129,55629099.aspx http://www.qdmm.com/BookReader/1156129,55629100.aspx http://www.qdmm.com/BookReader/1156129,55629101.aspx http://www.qdmm.com/BookReader/1156129,55629102.aspx http://www.qdmm.com/BookReader/1156129,55629103.aspx http://www.qdmm.com/BookReader/1156129,55629104.aspx http://www.qdmm.com/BookReader/1156129,55629105.aspx http://www.qdmm.com/BookReader/1156129,55629109.aspx http://www.qdmm.com/BookReader/1156129,55629110.aspx http://www.qdmm.com/BookReader/1156129,55629111.aspx http://www.qdmm.com/BookReader/1156129,55629112.aspx http://www.qdmm.com/BookReader/1156129,55629113.aspx http://www.qdmm.com/BookReader/1156129,55629114.aspx http://www.qdmm.com/BookReader/1156129,55629115.aspx http://www.qdmm.com/BookReader/1156129,55629116.aspx http://www.qdmm.com/BookReader/1156129,55629117.aspx http://www.qdmm.com/BookReader/1156129,55629118.aspx http://www.qdmm.com/BookReader/1156129,55629119.aspx http://www.qdmm.com/BookReader/1156129,55629120.aspx http://www.qdmm.com/BookReader/1156129,55629121.aspx http://www.qdmm.com/BookReader/1156129,55629122.aspx http://www.qdmm.com/BookReader/1156129,55629123.aspx http://www.qdmm.com/BookReader/1156129,55629124.aspx http://www.qdmm.com/BookReader/1156129,55629125.aspx http://www.qdmm.com/BookReader/1156129,55629126.aspx http://www.qdmm.com/BookReader/1156129,55629127.aspx http://www.qdmm.com/BookReader/1156129,55629128.aspx http://www.qdmm.com/BookReader/1156129,55629130.aspx http://www.qdmm.com/BookReader/1156129,55629131.aspx http://www.qdmm.com/BookReader/1156129,55629132.aspx http://www.qdmm.com/BookReader/1156129,55629133.aspx http://www.qdmm.com/BookReader/1156129,55629134.aspx http://www.qdmm.com/BookReader/1156129,55629135.aspx http://www.qdmm.com/BookReader/1156129,55629136.aspx http://www.qdmm.com/BookReader/1156129,55629137.aspx http://www.qdmm.com/BookReader/1156129,55629138.aspx http://www.qdmm.com/BookReader/1156129,55629139.aspx http://www.qdmm.com/BookReader/1156129,55629143.aspx http://www.qdmm.com/BookReader/1156129,55629144.aspx http://www.qdmm.com/BookReader/1156129,55629145.aspx http://www.qdmm.com/BookReader/1156129,55629146.aspx http://www.qdmm.com/BookReader/1156129,55629147.aspx http://www.qdmm.com/BookReader/1156129,55629148.aspx http://www.qdmm.com/BookReader/1156129,55629149.aspx http://www.qdmm.com/BookReader/1156129,55629150.aspx http://www.qdmm.com/BookReader/1156129,55629151.aspx http://www.qdmm.com/BookReader/1156129,55629152.aspx http://www.qdmm.com/BookReader/1156129,55629154.aspx http://www.qdmm.com/BookReader/1156129,55629155.aspx http://www.qdmm.com/BookReader/1156129,55629156.aspx http://www.qdmm.com/BookReader/1156129,55629157.aspx http://www.qdmm.com/BookReader/1156129,55629158.aspx http://www.qdmm.com/BookReader/1156129,55629159.aspx http://www.qdmm.com/BookReader/1156129,55629160.aspx http://www.qdmm.com/BookReader/1156129,55629161.aspx http://www.qdmm.com/BookReader/1156129,55629162.aspx http://www.qdmm.com/BookReader/1156129,55629163.aspx http://www.qdmm.com/BookReader/1156129,55629165.aspx http://www.qdmm.com/BookReader/1156129,55629166.aspx http://www.qdmm.com/BookReader/1156129,55629167.aspx http://www.qdmm.com/BookReader/1156129,55629168.aspx http://www.qdmm.com/BookReader/1156129,55629169.aspx http://www.qdmm.com/BookReader/1156129,55629170.aspx http://www.qdmm.com/BookReader/1156129,55629171.aspx http://www.qdmm.com/BookReader/1156129,55629172.aspx http://www.qdmm.com/BookReader/1156129,55629173.aspx http://www.qdmm.com/BookReader/1156129,55629174.aspx http://www.qdmm.com/BookReader/1156129,55629177.aspx http://www.qdmm.com/BookReader/1156129,55629178.aspx http://www.qdmm.com/BookReader/1156129,55629179.aspx http://www.qdmm.com/BookReader/1156129,55629180.aspx http://www.qdmm.com/BookReader/1156129,55629181.aspx http://www.qdmm.com/BookReader/1156129,55629182.aspx http://www.qdmm.com/BookReader/1156129,55629183.aspx http://www.qdmm.com/BookReader/1156129,55629184.aspx http://www.qdmm.com/BookReader/1156129,55629185.aspx http://www.qdmm.com/BookReader/1156129,55629186.aspx http://www.qdmm.com/BookReader/1156129,55629187.aspx http://www.qdmm.com/BookReader/1156129,55629188.aspx http://www.qdmm.com/BookReader/1156129,55629189.aspx http://www.qdmm.com/BookReader/1156129,55629190.aspx http://www.qdmm.com/BookReader/1156129,55629192.aspx http://www.qdmm.com/BookReader/1156129,55629193.aspx http://www.qdmm.com/BookReader/1156129,55629194.aspx http://www.qdmm.com/BookReader/1156129,55629195.aspx http://www.qdmm.com/BookReader/1156129,55629196.aspx http://www.qdmm.com/BookReader/1156129,55629197.aspx http://www.qdmm.com/BookReader/1156129,55629198.aspx http://www.qdmm.com/BookReader/1156129,55629199.aspx http://www.qdmm.com/BookReader/1156129,55629200.aspx http://www.qdmm.com/BookReader/1156129,55629201.aspx http://www.qdmm.com/BookReader/1156129,55629202.aspx http://www.qdmm.com/BookReader/1156129,55629203.aspx http://www.qdmm.com/BookReader/1156129,55629204.aspx http://www.qdmm.com/BookReader/1156129,55629205.aspx http://www.qdmm.com/BookReader/1156129,55629206.aspx http://www.qdmm.com/BookReader/1156129,55629207.aspx http://www.qdmm.com/BookReader/1156129,55629208.aspx http://www.qdmm.com/BookReader/1156129,55629209.aspx http://www.qdmm.com/BookReader/1156129,55629210.aspx http://www.qdmm.com/BookReader/1156129,55629211.aspx http://www.qdmm.com/BookReader/1156129,55629212.aspx http://www.qdmm.com/BookReader/1156129,55629213.aspx http://www.qdmm.com/BookReader/1156129,55629214.aspx http://www.qdmm.com/BookReader/1156129,55629215.aspx http://www.qdmm.com/BookReader/1156129,55629219.aspx http://www.qdmm.com/BookReader/1156129,55629221.aspx http://www.qdmm.com/BookReader/1156129,55629222.aspx http://www.qdmm.com/BookReader/1156129,55629223.aspx http://www.qdmm.com/BookReader/1156129,55629224.aspx http://www.qdmm.com/BookReader/1156129,55629225.aspx http://www.qdmm.com/BookReader/1156129,55629226.aspx http://www.qdmm.com/BookReader/1156129,55629227.aspx http://www.qdmm.com/BookReader/1156129,55629228.aspx http://www.qdmm.com/BookReader/1156129,55629229.aspx http://www.qdmm.com/BookReader/1156129,55629230.aspx http://www.qdmm.com/BookReader/1156129,55629231.aspx http://www.qdmm.com/BookReader/1156129,55629232.aspx http://www.qdmm.com/BookReader/1156129,55629233.aspx http://www.qdmm.com/BookReader/1156129,55629234.aspx http://www.qdmm.com/BookReader/1156129,55629235.aspx http://www.qdmm.com/BookReader/1156129,55629236.aspx http://www.qdmm.com/BookReader/1156129,55629237.aspx http://www.qdmm.com/BookReader/1156129,55629239.aspx http://www.qdmm.com/BookReader/1156129,55629240.aspx http://www.qdmm.com/BookReader/1156129,55629241.aspx
maven
如果你使用了Maven,maven repository配置如下:
<repository>
<id>opensesame</id>
<name>Alibaba OpenSource Repsoitory</name>
<url>http:
<snapshots>
<enabled>
false
</enabled>
</snapshots>
</repository>
|
pom.xml文件中加入依赖依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>
1.1
.
23
</version>
</dependency>
序列化
一个JSON库涉及的最基本功能就是序列化和反序列化。Fastjson支持java bean的直接序列化。你可以使用com.alibaba.fastjson.JSON这个类进行序列化和反序列化。
基本序列化
序列化就是把JavaBean对象转化成JSON格式的文本。
Object o = ...;
String text = JSON.toJSONString(o);
在这个例子中,调用JSON.toJSONString方法,把对象o转化为JSON格式的文本。
使用单引号
标准的JSON是使用双引号的,javascript支持使用单引号格式的json文本,fastjson也支持这个特性,打开SerializerFeature.UseSingleQuotes这个特性就可以了了,例如:
String text = JSON.toJSONString(o,SerializerFeature.UseSingleQuotes);
fastjson序列化时可以选择的SerializerFeature有十几个,你可以按照自己的需要去选择使用。
日期格式化
fastjson直接支持日期类型数据的格式化,包括java.util.Date、java.sql.Date、java.sql.Timestamp、java.sql.Time。
缺省情况下,fastjson将Date类型序列化为long,这个使得序列化和反序列化的过程不会导致时区问题。如: 例如:
long
millis = 1324138987429L;
Date date =
new
Date(millis);
System.out.println(JSON.toJSONString(date));
输出的结果是
fastjson还提供了基于格式化输出的SerializerFeature,例如:
JSON.toJSONString(date,SerializerFeature.WriteDateUseDateFormat);
输出的结果为:
你可以指定输出日期的格式,比如修改为输出毫秒:
JSON.toJSONStringWithDateFormat(date,
"yyyy-MM-dd HH:mm:ss.SSS"
);
输出的结果为:
"2011-12-18 00:23:07.429"
使用WriteClassName特性
fastjson支持序列化时写入类型信息,从而使得反序列化时不至于类型信息丢失。例如:
Color color = Color.RED;
String text = JSON.toJSONString(color,SerializerFeature.WriteClassName);
System.out.println(text);
输出结果:
{
"@type"
:
"java.awt.Color"
,102)!important; font-size:1em!important; vertical-align:baseline!important; overflow:visible!important; border-top:0px; right:auto!important; border-right:0px; padding-top:0px!important; top:auto!important; left:auto!important">"r"
:
255
"g"
0
"b"
"alpha"
}
由于序列化带了类型信息,使得反序列化时能够自动进行类型识别,例如:
String text = ...;
Color color = (Color) JSON.parse(text);
浏览器和设备兼容
fastjson缺省的序列化内容,是对序列化结果紧凑做了优化配置,使得序列化之后长度更小,但是这种优化配置是对一些浏览器和设备不兼容的。比如说在iphone上兼容emoji(绘文字)。
JSON.toJSONString(o,SerializerFeature.BrowserCompatible);
循环引用
很多场景中,我们需要序列化的对象中存在循环引用,在许多的json库中,这会导致stackoverflow。在功能强大的fastjson中,你不需要担心这个问题。例如:
A a =
A();
B b =
B(a);
a.setB(b);
String text = JSON.toJSONString(a);
A a1 = JSON.parSEObject(text,A.
class
);
Assert.assertTrue(a1 == a1.getB().getA());
引用是通过"$ref"来表示的
引用 |
描述 |
"$ref":".." |
上一级 |
"$ref":"@" |
当前对象,也就是自引用 |
"$ref":"$" |
根对象 |
"$ref":"$.children.0" |
基于路径的引用,相当于 root.getChildren().get(0) |
使用@JSONField Annotation
在某些场景,你可能需要定制序列化输出,比如说,希望序列化采用之后采用"ID",而不是"id",你可以使用@JSONField这个Annotation。
public
User {
@JSONField
(name=
"ID"
)
int
getId() { ... }
}
User user = ...;
JSON.toJSONString(user);
从json-lib中升级
如果你已经使用了json-lib,并且痛恨他蜗牛般的速度和罗嗦的API,建议你升级为fastjson,fastjson可以完全兼容json-lib的序列化格式。
import
com.alibaba.fastjson.JSON;
com.alibaba.fastjson.serializer.JSONLibDataFormatSerializer;
com.alibaba.fastjson.serializer.JSONSerializerMap;
com.alibaba.fastjson.serializer.SerializerFeature;
private
static
final
SerializeConfig config;
static
{
config =
SerializeConfig();
config.put(java.util.Date.
JSONLibDataFormatSerializer());
config.put(java.sql.Date.
// 使用和json-lib兼容的日期输出格式
}
SerializerFeature[] features = { SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteNullListAsEmpty,0)!important; font-size:1em!important; vertical-align:baseline!important; overflow:visible!important; border-top:0px; right:auto!important; border-right:0px; padding-top:0px!important; top:auto!important; left:auto!important">// list字段如果为null,输出为[],而不是null
SerializerFeature.WriteNullNumberAsZero,0)!important; font-size:1em!important; vertical-align:baseline!important; overflow:visible!important; border-top:0px; right:auto!important; border-right:0px; padding-top:0px!important; top:auto!important; left:auto!important">// 数值字段如果为null,输出为0,而不是null
SerializerFeature.WriteNullBooleanAsFalse,0)!important; font-size:1em!important; vertical-align:baseline!important; overflow:visible!important; border-top:0px; right:auto!important; border-right:0px; padding-top:0px!important; top:auto!important; left:auto!important">// Boolean字段如果为null,输出为false,而不是null
SerializerFeature.WriteNullStringAsEmpty
};
String toCompatibleJSONString(Object object) {
return
JSON.toJSONString(object,config,features);
}
通过上面代码中的toCompatibleJSONString方法,你就可以实现完全兼容json-lib了。
反序列化
反序列化就是把JSON格式的文本转化为Java Bean对象。
指定Class信息反序列化
通过指定类型信息,可以很方便的将"JSON文本"反序列化为"Java Bean"对象,例如:
// {"r":255,0)!important; font-size:1em!important; vertical-align:baseline!important; overflow:visible!important; border-top:0px; right:auto!important; border-right:0px; padding-top:0px!important; top:auto!important; left:auto!important">Color color = JSON.parSEObject(text,Color.
);
类型集合的反序列化
这个接口类似于parSEObject
// [{ ... },{ ... }]
List<User> users = JSON.parseArray(text,User.
泛型的反序列化
如果你需要返回一个带泛型的对象,例如List<User>、Map<String,User>,你可以使用TypeReference来传入类型信息。
// {"name":{"name":"ljw",age:18}}
Map<String,User> userMap = JSON.parSEObject(text,0)!important; font-size:1em!important; vertical-align:baseline!important; overflow:visible!important; border-top:0px; right:auto!important; border-right:0px; padding-top:0px!important; top:auto!important; left:auto!important">TypeReference<Map<String,User>>() {});
组合类型集合的反序列化
比如在网络协议中,经常会存在这样的组合:
fastjson对这种结构的反序列化有专门支持。
// [{/* header */},{/* body */}]
Type[] types =
Type[] {Header.
};
List<Object> list = JSON.parseArray(text,types);
Header header = (Header) list.get(
);
Body body = (Body) list.get(
1
使用@JSONCreator来指定构造函数来创建对象
如果你的JavaBean没有缺省构造函数,可以使用@JSONCreator来指定构造函数
class
Entity {
final
int
id;
final
String name;
@JSONCreator
public
Entity(
(name =
"id"
)
id,
"name"
) String name){
this
.id = id;
.name = name;
}
getId() {
id; }
String getName() {
name; }
}
把JSON文本反序列化为一个原型接口
interface
Bean {
getId();
void
setId(
value);
String getName();
setName(String value);
}
String text =
"{"id":123,"name":"chris"}"
;
Bean bean = JSON.parSEObject(text,Bean.
);
Assert.assertEquals(
123
Assert.assertEquals(
"chris"
bean.setId(
234
);
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|