示例

  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.HashMap;
  4. import java.util.Map;
  5.  
  6. import com.alibaba.fastjson.JSON;
  7. import com.alibaba.fastjson.JSONArray;
  8. import com.alibaba.fastjson.JSONObject;
  9.  
  10. class User{
  11. private int id;
  12. private String name;
  13. public int getId() {
  14. return id;
  15. }
  16. public void setId(int id) {
  17. this.id = id;
  18. }
  19. public String getName() {
  20. return name;
  21. }
  22. public void setName(String name) {
  23. this.name = name;
  24. }
  25. }
  26.  
  27. class Group{
  28. private int id;
  29. private String name;
  30. private List<User> list = new ArrayList<User>();
  31. public int getId() {
  32. return id;
  33. }
  34. public void setId(int id) {
  35. this.id = id;
  36. }
  37. public String getName() {
  38. return name;
  39. }
  40. public void setName(String name) {
  41. this.name = name;
  42. }
  43. public List<User> getList() {
  44. return list;
  45. }
  46. public void setList(List<User> list) {
  47. this.list = list;
  48. }
  49. }
  50.  
  51. class Weibo {
  52. private String id;
  53. private String city;
  54.  
  55. public Weibo(String id, String city) {
  56. this.id = id;
  57. this.city = city;
  58. }
  59.  
  60. public Weibo() {
  61. }
  62.  
  63. public String getId() {
  64. return id;
  65. }
  66.  
  67. public void setId(String id) {
  68. this.id = id;
  69. }
  70.  
  71. public String getCity() {
  72. return city;
  73. }
  74.  
  75. public void setCity(String city) {
  76. this.city = city;
  77. }
  78. }
  79.  
  80. public class JsonDemo {
  81. public static void main(String[] args) {
  82. json2JsonObjectM1();//将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息
  83. json2BeanM2(); //将Json文本数据转换为JavaBean数据!
  84. json2JSONArrayM3(); //将json数据转化为JSONArray:
  85. json2JavaBeanM4(); //将JSON文本转换为JavaBean的集合;转换为单纯的1个Object:parseObject(String text, Class<T> clazz);
  86. bean2JsonM5(); //将JavaBean转换为Json格式的数据/Json文本 用户数据的传递:例如上传服务器
  87. bean2JSONObjectM6();//将JavaBean转换为JSON对象
  88. complexExampleM7(); //一个相对复杂的例子:
  89. complex2JsonM8(); //一个复杂的Object到Json的Demo
  90. complexMap2JsonM9();//将Map数据转换为JsonString的Demo;这个对RedBoy服务端不就直接破了嘛!
  91. }
  92.  
  93. /**
  94. * 将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息
  95. */
  96. private static void json2JsonObjectM1() {
  97. //一个JsonObject文本数据
  98. String s = "{\"name\":\"liuzhao\"}";
  99. //将JsonObject数据转换为Json
  100. JSONObject object = JSON.parseObject(s);
  101. //利用键值对的方式获取到值
  102. System.out.println(object.get("name"));
  103. /**
  104. * 打印:
  105. * liuzhao
  106. */
  107. }
  108.  
  109. /**
  110. * 将Json文本数据转换为JavaBean数据!
  111. * 需要注意的是:这时候的Json文本信息中的键的名称必须和JavaBean中的字段名称一样!键中没有的在这个JavaBean中就显示为null!
  112. */
  113. private static void json2BeanM2() {
  114. String s = "{\"id\":\"0375\",\"city\":\"平顶山\"}";
  115. //一个简单方便 的方法将Json文本信息转换为JsonObject对象的同时转换为JavaBean对象!
  116. Weibo weibo = JSON.parseObject(s, Weibo.class);//Weibo类在下边定义
  117. System.out.println(weibo.getId());
  118. System.out.println(weibo.getCity());
  119. //打印的结果 0375
  120. // 平顶山
  121. }
  122.  
  123. /**
  124. * 将Map类型的数据转换为JsonString
  125. */
  126. private static void complexMap2JsonM9() {
  127. Group group = new Group();
  128. group.setId(1);
  129. group.setName("group");
  130.  
  131. User user1 = new User();
  132. user1.setId(2);
  133. user1.setName("user1");
  134.  
  135. User user2 = new User();
  136. user2.setId(3);
  137. user2.setName("user2");
  138. group.getList().add(user1);
  139. group.getList().add(user2);
  140.  
  141. Map<Integer, Object> map = new HashMap<Integer,Object>();
  142. map.put(1, "No.1");
  143. map.put(2, "No.2");
  144. map.put(3, group.getList());
  145.  
  146. String jsonString = JSON.toJSONString(map);
  147. System.out.println(jsonString);
  148. /**
  149. * 输出:{1:"No.1",2:"No.2",3:[{"id":2,"name":"user1"},{"id":3,"name":"user2"}]}
  150. */
  151. }
  152.  
  153. /**
  154. * 由一个复杂的Object到Json的Demo
  155. */
  156. private static void complex2JsonM8() {
  157. Group group = new Group();
  158. group.setId(1);
  159. group.setName("group");
  160.  
  161. User user1 = new User();
  162. user1.setId(2);
  163. user1.setName("user1");
  164.  
  165. User user2 = new User();
  166. user2.setId(3);
  167. user2.setName("user2");
  168. group.getList().add(user1);
  169. group.getList().add(user2);
  170. String jsonString = JSON.toJSONString(group);
  171. System.out.println(jsonString);
  172. /**
  173. * 输出:{"id":1,"list":[{"id":2,"name":"user1"},{"id":3,"name":"user2"}],"name":"group"}
  174. */
  175. }
  176.  
  177. /**
  178. * 一个相对复杂的例子:
  179. * JSON文本数据:
  180. * 首先是JSONObject,转换为JSONArray;
  181. * 然后将JSONArray转换为JavaBean
  182. */
  183. private static void complexExampleM7() {
  184. String s = "{js:[{id:\"110000\",\"city\":\"北#001京市\"},{id:\"110000\",\"city\":\"北#002京市\"}"
  185. + ",{id:\"110000\",\"city\":\"北#002京市\"},{id:\"110000\",\"city\":\"北#002京市\"},"
  186. + "{id:\"110000\",\"city\":\"#006北#005京市\"},"
  187. + "{id:\"110000\",\"city\":\"北#002京市\"},"
  188. + "{id:\"110000\",\"city\":\"北#002京市\"},{id:\"120000\",\"city\":\"天#009津市\"}]}";
  189.  
  190. JSONObject object = JSON.parseObject(s);
  191. Object jsonArray = object.get("js");
  192. System.out.println(jsonArray);
  193. List<Weibo> list = JSON.parseArray(jsonArray+"", Weibo.class);
  194. for (Weibo weibo : list) {
  195. System.out.println(weibo.getCity());
  196. }
  197. }
  198.  
  199. /**
  200. * 将JavaBean转换为JSON对象
  201. */
  202. private static void bean2JSONObjectM6() {
  203. Weibo weibo = new Weibo("0373", "洛阳");
  204. JSONObject json = (JSONObject) JSON.toJSON(weibo);
  205. System.out.println(json.get("id"));
  206. /**
  207. * 打印:
  208. * 0373
  209. */
  210. }
  211.  
  212. /**
  213. * 将JSON文本转换为JavaBean的集合;
  214. * 内部实现肯定是:首先转换为JSONArray,然后再转换为List集合
  215. */
  216. private static void json2JavaBeanM4() {
  217. String s = "[{\"id\":\"0375\",\"city\":\"平顶山\"},{\"id\":\"0377\",\"city\":\"南阳\"}]";
  218. List<Weibo> list = JSON.parseArray(s, Weibo.class);
  219. for (Weibo weibo : list) {
  220. System.out.println(weibo.getCity());
  221. }
  222. /**
  223. * 打印:
  224. * 平顶山
  225. * 南阳
  226. */
  227. }
  228.  
  229. /**
  230. * 将json数据转化为JSONArray:
  231. * 注意:获取到JSONArray之后(我们这里只是获取到JSONArray而不是JavaBean的List集合)
  232. * 获取JSONArray中的数据转换为String类型需要在外边加"";
  233. */
  234. private static void json2JSONArrayM3() {
  235. String s = "[{\"id\":\"0375\",\"city\":\"平顶山\"},{\"id\":\"0377\",\"city\":\"南阳\"}]";
  236. //将JSON文本转换为JSONArray
  237. JSONArray array = JSON.parseArray(s);
  238. //这行必须写:必须加上+"";不然会报出类型强转异常!
  239. String str = array.get(1)+"";
  240. System.out.println(array.get(0));
  241. JSONObject object = JSON.parseObject(str);
  242. System.out.println(object.get("id"));
  243. /**
  244. * {"city":"平顶山","id":"0375"}
  245. 0377
  246. */
  247. }
  248.  
  249. /**
  250. * 将JavaBean转换为Json格式的数据/Json文本
  251. * 用户数据的传递:例如上传服务器
  252. */
  253. private static void bean2JsonM5() {
  254. Weibo weibo = new Weibo("123456", "上海");
  255. String string = JSON.toJSONString(weibo);
  256. System.out.println(string);
  257. /**
  258. * 打印:
  259. * {"city":"上海","id":"123456"}
  260. */
  261. }
  262.  
  263. }

参考

http://www.oschina.net/code/snippet_228315_35122

FastJson--阿里开源的速度最快的Json和对象转换工具的更多相关文章

  1. 2.FastJson公司--阿里巴巴开源的速度最快的Json和对象转换工具

    转自:https://blog.csdn.net/gongpulin/article/details/52062532 这是关于FastJson的一个使用Demo,在Java环境下验证的 这是关于Fa ...

  2. FastJson--阿里巴巴公司开源的速度最快的Json和对象转换工具(转)

    本文转自:http://blog.csdn.net/djun100/article/details/24237371 这是关于FastJson的一个使用Demo,在Java环境下验证的 class U ...

  3. FastJson--阿里开源的速度最快的Json和对象转换工具 https://www.cnblogs.com/kaituorensheng/p/8082631.html

    import java.util.ArrayList;import java.util.List;import java.util.HashMap;import java.util.Map; impo ...

  4. 小码哥哥 FastJson--阿里巴巴公司开源的速度最快的Json和对象转换工具

    转载地址:http://www.oschina.net/code/snippet_228315_35122?_t_t_t=0.4667952097048127 class User{ private ...

  5. 速度最快的Json序列框架Jil,入门动手实录

    好吧,我又先要贴出跑分图了,出处 Jil是一个面向Json的序列化框架,在Nuget上可以下载到 支持数据类型 值得一提的是,Guid指定带破折号格式(44B2673B-B5CA-477B-A8EA- ...

  6. 如何找到fastjson.jar这个阿里开源的jar包

    如何找到fastjson.jar这个阿里开源的jar包 转载 https://blog.csdn.net/AngelLover2017/article/details/84261261 Java编程中 ...

  7. Android解析Json速度最快的库:json-smart

    场景描写叙述: 本文仅验证了在安卓环境下使用Json的Key作为反序列化条件的解析速度.结论是解析速度最快的不是阿里的fastjson,也不是Google的Gson,而是json-smart. And ...

  8. 为什么 Kafka 速度那么快?

    来源:cnblogs.com/binyue/p/10308754.html Kafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafk ...

  9. JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码

    本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍) ...

随机推荐

  1. Android’s HTTP Clients (httpClient 和 httpURLConnect 区别)

    来源自:http://android-developers.blogspot.jp/2011/09/androids-http-clients.html Most network-connected ...

  2. RecyclerView分割线——万能分割线

    参照网络上众多的分割线设计方法,对方法进行调整和修改,最终完成的比较通用的RecyclerView分割线,底部会附上参考网址,大家可以去看一下. 在正文之前,先说一下个人看法:研究下来,我发现,其实最 ...

  3. 4. 跟踪标记 (Trace Flag) 610 对索引组织表(IOT)最小化日志

    跟踪标记:610 功能: 用批量导入操作(Bulk Import Operations)加载数据时,对于索引组织表(即有聚集索引的表) 最小化日志: 上图为simple/bulk-logged恢复模式 ...

  4. virtualbox下centos实现主宿互访

    1.网络连接方式 NAT 桥接 Host-Only NAT: 网络地址转换,virtualbox默认采用这种连接方式,特点: 1.虚拟机配置稍作修改就能连上外网 2.虚拟机可以ping通主机,主机不能 ...

  5. 3721:和数-poj

    总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个正整数序列,判断其中有多少个数,等于数列中其他两个数的和. 比如,对于数列1 2 3 4, 这个问题的答案就是2, 因为3 = ...

  6. Windows系统重装

    http://www.ishuo.cn/show/76437.htmlhttp://jingyan.baidu.com/article/d8072ac45d4f60ec95cefdaa.html

  7. 深度解析continue,break和return

    continue,break和return是Java中的关键字,在方法体内的流程控制中使用频率较高. 在现实中,经常会有同学在使用中产生混淆,从而使得流程控制语句发生混乱.在这里,我结合个人的使用经历 ...

  8. js-引用类型-Array

    1.数组的操作方法 <html> <meta http-equiv="content-type" charset="utf-8" /> ...

  9. Python入门 - 环境搭建

    因为本人用的mac系统,所以这里只演示mac系统下python环境的搭建,至于windows和linux系统有类似安装过程,可以参考官方文档. 第一步: 安装python3.6 # Mac OS X ...

  10. Failed to load the JNI shared lib...

    启动eclipse报错:Failed to load the JNI shared lib... 解决办法如下:保证JDK与eclipse相匹配 在同一台计算机中,如果JDK是32位的,那么eclip ...