java json 时间_java中json和字符串互转及日期转换 练习

1 packagecom.tang;2

3 importjava.util.ArrayList;4 importjava.util.Date;5 importjava.util.HashMap;6 importjava.util.List;7 importjava.util.Map;8

9 importorg.apache.commons.lang.time.DateFormatUtils;10

11 importnet.sf.json.JSONArray;12 importnet.sf.json.JSONObject;13 importnet.sf.json.JsonConfig;14 importnet.sf.json.processors.JsonValueProcessor;15 /**

16 * json练习17 *@authortbb18 *@version2017-4-819 */

20 public classDemoJsons {21

22

23 /**

24 * json转换为字符串25 */

26 public static voiddoJsonToString(){27 //jsonObject先转为json数组再去转换成字符串

28 JSONObject json = newJSONObject();29

30 //向json中添加数据

31 json.put("username", "wangl");32

33 //往json数组添加值 第一种方法34 //JSONArray jsons = JSONArray.fromObject(json);35

36 //往json数组添加值 第二种方法

37 JSONArray jsons = newJSONArray();38 jsons.add(json);39

40 //数组转换为String

41 System.out.println(jsons.toString());42 //将数组中的jsonObjejct转换为String (可参考下面:getJsonArrayToString()方法)

43 System.out.println(jsons.getString(0));44

45 //注如果非要转换成jsonObject类型的字符串46 //String jsonToString1 = jsons.toString();47 //String jsonToString2 = jsonToString1.substring(1, jsonToString1.length()-1);48 //System.out.println(jsonToString2);

49

50 }51

52 /**

53 * map转换为json对象54 */

55 static voiddoMapToJson(){56 Map map = new HashMap();57 map.put("username", "zhangsan");58 map.put("password", "123456");59

60 //转换为json数组

61 JSONArray array =JSONArray.fromObject(map);62 System.out.println(array);63

64 //转换为json对象

65 JSONObject json =JSONObject.fromObject(map);66 System.out.println(json);67 }68

69

70 /**

71 * jsonObject中的一些方法应用72 */

73 public static voiddoJsonObjectHandle(){74 //外部类调用内部类

75 DemoJsons.Person p = new DemoJsons().newPerson();76 p.setUserName("zhangsan");77 p.setAge(19);78

79 //java对象转换成json对象

80 JSONObject json =JSONObject.fromObject(p);81

82 //判断是否包含某个值 包含:true 反之:false83 //System.out.println(json.containsValue(19));84

85 //判断是否包含某个key 包含:true 反之:false86 //System.out.println(json.containsKey("userName"));87

88 //替换json对象中某个属性的值89 //JSONObject json1 = json.element("userName", "lisi");90 //System.out.println(json1);91

92 //根据key在value中增加值93 //System.out.println(json.accumulate("age", 17));//执行结果 : {"age":[19,17],"endTime":null,"userName":"zhangsan"}94

95 //和json.get("userName");返回值是相同点的96 //System.out.println(json.opt("userName"));97

98 //往json中增加新的key和value99 //json.put("shuai", "shuai");100

101 //根据key 删除key-value102 //json.remove("shuai");

103 System.out.println(json);104 }105

106

107 /**

108 * java对象转换成json对象109 */

110 public static voiddoObject(){111 /**

112 * 外部类调用内部类113 * 1:如果内部类是public DemoJsons.Person p = new DemoJsons().new Person();114 * 2:如果内部类是静态的 new DateJsonValueProcessor();115 */

116 //外部类调用内部类

117 DemoJsons.Person p = new DemoJsons().newPerson();118 p.setUserName("zhangsan");119 p.setAge(19);120 DemoJsons.Person p2 = new DemoJsons().newPerson();121 p2.setUserName("lisi");122 p2.setAge(19);123 DemoJsons.Person p3 = new DemoJsons().newPerson();124 p3.setUserName("wangwu");125 p3.setAge(19);126 List ps = new ArrayList();127 ps.add(p);128 ps.add(p2);129 ps.add(p3);130

131 //java对象转换成json对象

132 JSONObject json =JSONObject.fromObject(p);133 System.out.println(json);134

135 //java list转换成json数组

136 JSONArray jsons =JSONArray.fromObject(ps);137 System.out.println(jsons);138

139 //获取json数组中的json对象

140 JSONObject obj = jsons.getJSONObject(2);141 System.out.println(obj);142

143 //获取json对象中的属性值 相当与Map(key-value) 和map取值一样

144 System.out.println(obj.getString("userName"));145 System.out.println(obj.getInt("age"));146 }147

148

149 /**

150 * 日期转换151 */

152 public static voiddemoDate(){153 //外部类调用内部类

154 Person p = new DemoJsons().newPerson();155 p.setAge(18);156 p.setEndTime(newDate());157 p.setUserName("zhangsan");158 //日期转换

159 JsonConfig jsonConfig = newJsonConfig();160

161 //第一种日期转换 需要新建一个类DateJsonValueProcessor162 //jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor());163

164 //第二种日期转换

165 jsonConfig.registerJsonValueProcessor(java.util.Date.class, newJsonValueProcessor() {166

167 @Override168 publicObject processObjectValue(String arg0, Object arg1, JsonConfig arg2) {169 //TODO Auto-generated method stub170 //导包import org.apache.commons.lang.time.DateFormatUtils; jar包:commons-lang-2.6.jar

171 return DateFormatUtils.format((Date)arg1, "yyyy-MM-dd");172 }173

174 @Override175 publicObject processArrayValue(Object arg0, JsonConfig arg1) {176 //TODO Auto-generated method stub

177 return null;178 }179 });180

181 JSONObject json =JSONObject.fromObject(p,jsonConfig);182 System.out.println(json);183 }184

185 /**

186 * 把json数组里的某个对象转换为字符串187 */

188 public static voidgetJsonArrayToString(){189 String us = "[{\"userName\":\"zhangsan\"},{\"userName\":\"lisi\"}]";190 JSONArray json =JSONArray.fromObject(us);191 System.out.println(json.getString(0));192 }193

194 /**

195 * 测试实体类196 *@authortbb197 *198 */

199 public classPerson{200

201 privateString userName;202 privateInteger age;203 privateDate endTime;204

205 publicDate getEndTime() {206 returnendTime;207 }208 public voidsetEndTime(Date endTime) {209 this.endTime =endTime;210 }211 publicString getUserName() {212 returnuserName;213 }214 public voidsetUserName(String userName) {215 this.userName =userName;216 }217 publicInteger getAge() {218 returnage;219 }220 public voidsetAge(Integer age) {221 this.age =age;222 }223

224 }225

226 /**

227 * 日期格式化处理类228 *@authortbb229 *230 */

231 public static class DateJsonValueProcessor implementsJsonValueProcessor{232 //json数组日期转换

233 @Override234 publicObject processArrayValue(Object arg0, JsonConfig arg1) {235 //TODO Auto-generated method stub236 //判断是否是Date类型

237 if (arg0 instanceofDate){238 String str = DateFormatUtils.format((Date)arg0, "yyyy-MM-dd");239 returnstr;240 }241 return null;242 }243 //json对象日期转换

244 @Override245 publicObject processObjectValue(String arg0, Object arg1,246 JsonConfig arg2) {247 //TODO Auto-generated method stub

248 return DateFormatUtils.format((Date)arg1, "yyyy-MM-dd");249 }250

251 }252

253

254 /**

255 *@paramargs256 */

257 public static voidmain(String[] args) {258 //TODO Auto-generated method stub259 //doObject();260 //demoDate();261 //doJsonToString();262 //doJsonObjectHandle();

263 getJsonArrayToString();264 }265

266 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值