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

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

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

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

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

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

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

  3. FastJson--阿里开源的速度最快的Json和对象转换工具

    示例 import java.util.ArrayList; import java.util.List; import java.util.HashMap; import java.util.Map ...

  4. 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 ...

  5. ssh使用ajax异步通讯. json与对象转换的几个小问题

    首先是hibernate,用ssh做项目的时候,使用hibernate,这个hibernate博大精深,至今只懂皮毛.建对象时候使用它的一对多,多对多联系,. 这样子,对象转json的时候会产生循环依 ...

  6. fastjson是阿里巴巴的开源JSON解析库

    fastjson的API十分简洁. String text = JSON.toJSONString(obj); //序列化 VO vo = JSON.parseObject("{...}&q ...

  7. 转发 ----> 2018年阿里巴巴重要开源项目汇总(持续更新中)

    转发自segmentfault  https://segmentfault.com/a/1190000017346799 前端 1.数据驱动的高交互可视化图形语法 AntV - G2 G2 是一套基于 ...

  8. [转]开源中国的 IT 公司开源软件整理计划介绍

    [转]开源中国的 IT 公司开源软件整理计划介绍 http://www.oschina.net/news/61534/oschina-opensource-collection-plan-for-it ...

  9. 开源中国的 IT 公司开源软件整理计划介绍

    直击现场 <HTML开发MacOSApp教程>  http://pan.baidu.com/s/1jG1Q58M 开源中国的 IT 公司开源软件整理计划介绍 oschina 发布于: 20 ...

随机推荐

  1. 基于Token的身份验证

    最近了解下基于 Token 的身份验证,跟大伙分享下.很多大型网站也都在用,比如 Facebook,Twitter,Google+,Github 等等,比起传统的身份验证方法,Token 扩展性更强, ...

  2. 1 PHP 5.3中的新特性

    1 PHP 5.3中的新特性 1.1 支持命名空间 (Namespace) 毫无疑问,命名空间是PHP5.3所带来的最重要的新特性. 在PHP5.3中,则只需要指定不同的命名空间即可,命名空间的分隔符 ...

  3. MyBatis从入门到精通(第9章):Spring集成MyBatis(下)

    MyBatis从入门到精通(第9章):Spring集成MyBatis(下) springmvc执行流程原理 mybatis-spring  可以帮助我们将MyBatis代码无缝整合到Spring中.使 ...

  4. 一文详解 Java 的八大基本类型

    自从Java发布以来,基本数据类型就是Java语言中重要的一部分,本文就来详细介绍下每种基本类型的具体使用方法和限制. 作者 | Jeremy Grifski 译者 | 弯月,责编 | 郭芮 出品 | ...

  5. php中openssl_pkey_get_private()函数遇到false的问题 解决办法

    今天用openssl_pkey_get_private()函数遇到了一个大坑: 如果你的私钥文件(private_key.pem)是 -----BEGIN PRIVATE KEY-----字符串字符串 ...

  6. 《深入理解java虚拟机》-目录结构

    第一部分 走进Java第1章 走进Java 第二部分 自动内存管理机制 第2章 Java内存区域与内存溢出异常2.1 概述2.2 运行时数据区域2.2.1 程序计数器2.2.2 java虚拟机栈2.2 ...

  7. Proe5.0导出PDF至配置文件的相关方法,VC++

    定义文件bcsMessage.txt PLM PLM PLM # login login 测试 # Active messagebox menu Active messagebox menu 激活菜单 ...

  8. 论文翻译——Dynamic Pooling and Unfolding Recursive Autoencoders for Paraphrase Detection

    Dynamic Pooling and Unfolding Recursive Autoencoders for Paraphrase Detection 动态池和展开递归自动编码器的意译检测 论文地 ...

  9. Linux设置环境变量PATH路径的两种方法

    echo 'export dataPath=$HOME/data/pre' >> ~/.bash_profile 路径即刻生效: . .bash_profile 或 source .bas ...

  10. 吴裕雄--天生自然python TensorFlow图片数据处理:No module named 'tensorflow.examples.tutorials'解决办法

    import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_dat ...