JSONUtil(JAVA对象/List与json互转,xml与json互转)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JSONUtil(JAVA对象/List与json互转,xml与json互转),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含8297字,纯文字阅读大概需要12分钟。
内容图文
1 package com.chauvet.utils.json; 2 3 import java.io.BufferedReader; 4 import java.io.File; 5 import java.io.FileInputStream; 6 import java.io.FileWriter; 7 import java.io.InputStreamReader; 8 import java.util.List; 9 10 import net.sf.json.JSONArray; 11 import net.sf.json.JSONObject; 12 import net.sf.json.xml.XMLSerializer; 13 14 import org.apache.commons.lang.StringUtils; 15 16 import com.google.gson.Gson; 17 import com.google.gson.GsonBuilder; 18 19 20 public class JsonUtils { 21 private final static Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create(); 22privatestatic XMLSerializer xmlserializer = new XMLSerializer(); 23 24publicstatic Gson getInstance(){ 25return gson; 26 } 27 28/*** 29 * List 转为 JSON 30 * @param list 31 * @return 32*/ 33publicstatic <T> String list2Json(List<T> list) { 34if(null != list && list.size() > 0){ 35 JSONArray jsonArray = JSONArray.fromObject(list); 36return jsonArray.toString(); 37 } 38return ""; 39 } 40 41 42/*** 43 * JSON 转换为 List 44 * @param jsonStr 45 * [{"age":12,"createTime":null,"id":"","name":"wxw","registerTime":null,"sex":1},{...}] 46 * @param objectClass 47 * @return 48*/ 49 @SuppressWarnings("unchecked") 50publicstatic <T> List<T> json2List(String jsonStr, Class<T> objectClass){ 51if (StringUtils.isNotBlank(jsonStr)) { 52 JSONArray jsonArray = JSONArray.fromObject(jsonStr); 53 List<T> list = (List<T>) JSONArray.toCollection(jsonArray, objectClass); 54return list; 55 } 56returnnull; 57 } 58 59 60/*** 61 * Object 转为 JSON 62 * @param object 63 * @return 64*/ 65publicstatic String object2Json(Object object) { 66if(null != object){ 67 JSONArray jsonArray = JSONArray.fromObject(object); 68return jsonArray.toString(); 69 } 70return ""; 71 } 72 73/*** 74 * 75 * JSON 转 Object 76 * 77 * @param jsonStr 78 * [{"age":12,"createTime":null,"id":"","name":"wxw","registerTime":null,"sex":1}] 79 * @param objectClass 80 * @return 81*/ 82 @SuppressWarnings("unchecked") 83publicstatic <T> T json2Ojbect(String jsonStr, Class<T> objectClass){ 84if(null != jsonStr){ 85 String leftStr = jsonStr.substring(0,2); 86 String rightStr = jsonStr.substring(jsonStr.length()-2,jsonStr.length()); 87if(leftStr.equals("[{")){ 88 jsonStr = jsonStr.substring(1,jsonStr.length()); 89 } 90if(rightStr.equals("}]")){ 91 jsonStr = jsonStr.substring(0,jsonStr.length()-1); 92 } 93 JSONObject jsonStu = JSONObject.fromObject(jsonStr); 94return (T) JSONObject.toBean(jsonStu,objectClass); 95 } 96returnnull; 97 } 98 99/*** 100 * JsonArray 转为 JSON 101 * @param jsonArray 102 * @return103*/104publicstatic String jsonArrayToJSONString(JSONArray jsonArray) { 105if(null != jsonArray){ 106return jsonArray.toString(); 107 } 108return ""; 109 } 110111/*** 112 * JsonObject 转为 JSON 113 * @param jsonObject 114 * @return115*/116publicstatic String jsonObjectToJSONString(JSONObject jsonObject) { 117if(null != jsonObject){ 118return jsonObject.toString(); 119 } 120return ""; 121 } 122123/*** 124 * 将Object转换为JsonObject 125 * @param object 126 * @return127*/128publicstatic JSONObject object2JsonObject(Object object) { 129if(null != object){ 130return JSONObject.fromObject(object); 131 } 132returnnull; 133 } 134135136/*** 137 * XML 转为 JSON 138 * @param xmlString 139 * XML字符串 例如: 140 * <?xml version=‘1.0‘ encoding=‘utf-8‘?><cities><province name=‘北京‘><item>东城区</item><item>西城区</item><item>崇文区</item><item>宣武区</item><item>朝阳区</item><item>丰台区</item><item>石景山区</item><item>海淀区</item><item>门头沟区</item><item>房山区</item><item>通州区</item><item>顺义区</item><item>昌平区</item><item>大兴区</item><item>怀柔区</item><item>平谷区</item><item>密云县</item><item>延庆县</item></province></cities> 141 * @return142 * 143*/144publicstatic String xml2json(String xmlString){ 145if(StringUtils.isNotBlank(xmlString)){ 146try { 147return xmlserializer.read(xmlString).toString(); 148 } catch (Exception e) { 149 e.printStackTrace(); 150returnnull; 151 } 152 } 153returnnull; 154 } 155156/*** 157 * JSON 转为 XML 158 * @param xmlString 159 * XML字符串 例如: 160 * [{‘province‘:{‘@name‘:‘北京‘,‘item‘:[‘东城区‘,‘西城区‘,‘崇文区‘,‘宣武区‘,‘朝阳区‘,‘丰台区‘,‘石景山区‘,‘海淀区‘,‘门头沟区‘,‘房山区‘,‘通州区‘,‘顺义区‘,‘昌平区‘,‘大兴区‘,‘怀柔区‘,‘平谷区‘,‘密云县‘,‘延庆县‘]}}] 161 * 或者: 162 * {‘province‘:{‘@name‘:‘北京‘,‘item‘:[‘东城区‘,‘西城区‘,‘崇文区‘,‘宣武区‘,‘朝阳区‘,‘丰台区‘,‘石景山区‘,‘海淀区‘,‘门头沟区‘,‘房山区‘,‘通州区‘,‘顺义区‘,‘昌平区‘,‘大兴区‘,‘怀柔区‘,‘平谷区‘,‘密云县‘,‘延庆县‘]}} 163 * @return164 * 165*/166publicstatic String json2xml(String jsonStr){ 167if(StringUtils.isNotBlank(jsonStr)){ 168try { 169if(jsonStr.contains("[{") && jsonStr.contains("}]")){ 170 JSONArray jobj = JSONArray.fromObject(jsonStr); 171return xmlserializer.write(jobj); 172 } 173 JSONObject jobj = JSONObject.fromObject(jsonStr); 174return xmlserializer.write(jobj); 175 } catch (Exception e) { 176 e.printStackTrace(); 177returnnull; 178 } 179 } 180returnnull; 181 } 182183184/*** 185 * XML/JSON 互转 186 * 187 * @param sourceFilePath 188 * 要解析的文件路径 189 * @param directFilePath 190 * 生成文件存放的路径 191 * @param flag 192 * true:JSON 转为 XML 193 * false:XML转为 JSON 194 * @return195*/196publicstatic String xml2JsonOrjson2Xml(String sourceFilePath,String directFilePath,boolean flag){ 197if(StringUtils.isBlank(sourceFilePath) || StringUtils.isBlank(directFilePath)){ 198returnnull; 199 } 200 FileInputStream in =null; 201 BufferedReader br = null; 202 FileWriter fw = null; 203 String rs = null; 204try{ 205 File jsonFile = new File(sourceFilePath); 206 in = new FileInputStream(jsonFile); 207 StringBuffer sbuf = new StringBuffer(); 208 br = new BufferedReader(new InputStreamReader(in)); 209 String temp =null; 210211while((temp=br.readLine())!=null){ 212 sbuf.append(temp); 213 } 214if(flag){ 215 rs = json2xml(sbuf.toString()); 216 }else{ 217 rs = xml2json(sbuf.toString()); 218 } 219 File test = new File(directFilePath); 220if(!test.exists()){ 221 test.createNewFile(); 222 } 223 fw = new FileWriter(test); 224 fw.write(rs); 225 }catch (Exception e) { 226 e.printStackTrace(); 227 }finally{ 228try { 229 fw.close(); 230 br.close(); 231 in.close(); 232 } catch (Exception e) { 233 e.printStackTrace(); 234 } 235 } 236return rs; 237 } 238239240publicstaticvoid main(String[] args) { 241242// System.out.println(jfxfTranspose("E:/qwe.json", "E:/qwe.xml", 1)); 243244// System.out.println(json2xml("[{‘province‘:{‘@name‘:‘北京‘,‘item‘:[‘东城区‘,‘西城区‘,‘崇文区‘,‘宣武区‘,‘朝阳区‘,‘丰台区‘,‘石景山区‘,‘海淀区‘,‘门头沟区‘,‘房山区‘,‘通州区‘,‘顺义区‘,‘昌平区‘,‘大兴区‘,‘怀柔区‘,‘平谷区‘,‘密云县‘,‘延庆县‘]}}]")); 245// System.out.println(xml2json("<?xml version=‘1.0‘ encoding=‘utf-8‘?><cities><province name=‘北京‘><item>东城区</item><item>西城区</item><item>崇文区</item><item>宣武区</item><item>朝阳区</item><item>丰台区</item><item>石景山区</item><item>海淀区</item><item>门头沟区</item><item>房山区</item><item>通州区</item><item>顺义区</item><item>昌平区</item><item>大兴区</item><item>怀柔区</item><item>平谷区</item><item>密云县</item><item>延庆县</item></province></cities>"));246247/*User u = new User(); 248 u.setName("wxw"); 249 u.setAge(12); 250 u.setSex(1); 251 System.out.println(object2JsonObject(u));*/252253/*User u = new User(); 254 u.setName("wxw"); 255 u.setAge(12); 256 u.setSex(1); 257 System.out.println(object2Json(u));*/258259/*User us = json2Ojbect(object2Json(u), User.class); 260 System.out.println(us); 261*/262263/*List<User> list = new ArrayList<User>(); 264 User u = new User(); 265 u.setName("wxw"); 266 u.setAge(12); 267 u.setSex(1); 268 list.add(u); 269 u = new User(); 270 u.setName("zmx"); 271 u.setAge(12); 272 u.setSex(0); 273 list.add(u); 274 u = new User(); 275 u.setName("arnold"); 276 u.setAge(12); 277 u.setSex(1); 278 list.add(u); 279 String str = list2Json(list); 280 System.out.println(str);*/281282/*List<User> userList = converAnswerFormString(str, User.class); 283 System.out.println(userList); 284*/285286 } 287 }
原文:http://www.cnblogs.com/cxxjohnson/p/7816726.html
内容总结
以上是互联网集市为您收集整理的JSONUtil(JAVA对象/List与json互转,xml与json互转)全部内容,希望文章能够帮你解决JSONUtil(JAVA对象/List与json互转,xml与json互转)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。