这是关于FastJson的一个使用Demo,在Java环境下验证的

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

这是关于FastJson的一个使用Demo,在Java环境下验证的的相关文章

一个简单的SSL Server和SSL Client来讲解Java环境下SSL的通信原理

首先我们先回顾一下常规的Java Socket编程.在Java下写一个Socket服务器和客户端的例子还是比较简单的.以下是服务端的代码: Java代码   package org.bluedash.tryssl; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Serve

由一个简单需求到Linux环境下的syslog、unix domain socket

本文记录了因为一个简单的日志需求,继而对linux环境下syslog.rsyslog.unix domain socket的学习.本文关注使用层面,并不涉及rsyslog的实现原理,感兴趣的读者可以参考rsyslog官网.另外,本文实验的环境实在debian8,如果是其他linux发行版本或者debian的其他版本,可能会稍微有些差异. 需求: 工作中有一个在Linux(debian8)环境下运行的服务器程序,用python语言实现,代码中有不同优先级的日志需要记录,开发的时候都是使用pytho

编写一个程序,将 d:\java 目录下的所有.java 文件复制到 d:\jad 目录下,并 将原来文件的扩展名从.java 改为.jad。

package IO; import java.io.*; public class FileCopy { public static void main(String[] args) throws Exception { File srcDir = new File("java"); if(!(srcDir.isDirectory() && srcDir.exists())) { throw new Exception("目录不存在"); } //

一个包含python和java环境的dockerfile

现在一个项目中遇到python调用java的jar包的环境.为了方便发布,编写了这个dockerfile,作为基础镜像. 1 #this docker file is used to build runtime environment. 2 #The project is a python app which contains a java jar lib. 3 FROM centos 4 MAINTAINER mzyn22 <[email protected].com> 5 6 COPY .

ArcGIS API for JavaScript开发环境搭建及第一个实例demo

原文:ArcGIS API for JavaScript开发环境搭建及第一个实例demo ESRI公司截止到目前已经发布了最新的ArcGIS Server for JavaScript API v3.9,它提供了更为丰富而又强大的功能.     一.安装前准备 1.ArcGIS Server for JavaScript API各版本下载地址:http://support.esrichina-bj.cn/2011/0223/960.html,我们选择下载最新的"ArcGIS API for Ja

Autofac 一个使用Demo

一:接口 二:实现: 三:调用: 首先上图: 一:接口代码 public interface IPersonDa { PersonEntity Get(int id); } 二:实现 public class PersonDa : IPersonDa { public PersonEntity Get(int id) { using (BaseMgr.BaseSysDbContext db = new BaseSysDbContext()) { var result = db.People.Wh

javascript 跟随鼠标移动的提示框的一个小demo

下面提供一种跟随鼠标移动的提示框的思路,方便在以后工作中应用,主要是应用到鼠标移动产生的数值来进行移动提示框的定位... CSS代码   .box{height:100px;width:100px;background:orange;position:relative;margin:40px;} .move{height:20px;width:20px;background:red;position:absolute;left:0px;top:0px;display:none;} HTML代码

jQuery 中 ajax 提交数据应用的一个小demo

举一个jquery中ajax的应用小 demo 便于以后的更多项目拓展 ,这里要注意的是保存的文件名问题 ... ajax02.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="form&qu

jQuery 中 ajax 请求数据应用的一个小demo

举一个jquery中ajax的应用小 demo 便于以后的更多项目拓展 ,这里要注意的是保存的文件名和文件图片路径问题 ... ajax01.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> ajax小例子 </title> </head> <body> <!--