- 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 map = new HashMap();
- 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 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 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
- }
来源: