转:将JSON数据转换成JAVA的实体类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了转:将JSON数据转换成JAVA的实体类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3517字,纯文字阅读大概需要6分钟。
内容图文
![转:将JSON数据转换成JAVA的实体类](/upload/InfoBanner/zyjiaocheng/1051/46444bb4d3584c0094823ea9cbd404c6.jpg)
思路:首先将JSON格式的数据转换成JSONObject,然后将JSONObject转换成Java的实体类(其中类属性包括List等类型)
Java实体类:
SearchFilter 类:
public class SearchFilter { private String groupOp; private List<SearchRule> rules; public String getGroupOp() { return groupOp; } publicvoid setGroupOp(String groupOp) { this.groupOp = groupOp; } public List<SearchRule> getRules() { return rules; } publicvoid setRules(List<SearchRule> rules) { this.rules = rules; } }
SearchRule 类:
public class SearchRule { private String field; private String op; private String data; public String getField() { return field; } public void setField(String field) { this.field = field; } public String getOp() { return op; } publicvoid setOp(String op) { this.op = op; } public String getData() { return data; } publicvoid setData(String data) { this.data = data; } }
导入的package
import com.fasterxml.jackson.databind.ObjectMapper; import net.sf.json.JSONArray; import net.sf.json.JSONObject;
解析JSON格式字符串的方法
public SearchFilter jsonToSearchFilter(String filters) { SearchFilter searchFilter = null; try { JSONObject jsonobject = JSONObject.fromObject(filters);//将json格式的字符串转换成JSONObject 对象 JSONArray array = jsonobject.getJSONArray("rules"); //如果json格式的字符串里含有数组格式的属性,将其转换成JSONArray,以方便后面转换成对应的实体 List<SearchRule> rules = new ArrayList<SearchRule>(); for (int i = 0; i < array.size(); i++) { JSONObject object = (JSONObject) array.get(i); //将array中的数据进行逐条转换 SearchRule rule = (SearchRule) JSONObject.toBean(object, SearchRule.class); //通过JSONObject.toBean()方法进行对象间的转换 rules.add(rule); } String groupOp = jsonobject.getString("groupOp"); //简单的直接获取值 searchFilter = new SearchFilter(); //对SearchFilter对象进行组装 searchFilter.setGroupOp(groupOp); searchFilter.setRules(rules); } catch (Exception e) { System.out.println("filters=" + filters.toString() + ".json转换成实体类出错"); e.printStackTrace(); } return searchFilter; }
这里只进行了SearchFilter类中list<SearchRule>rule属性的对象转换,因为它是一个SearchRule对象数组,需要单独拿出来进行json转换成对象,如果直接对filter进行 SearchFilter进行实体转换会报错。如果对象中不含有list,array,map等集合,可以像8-9行一样进行对象转换。
测试:
public static void main(String[] args) { UserMgmtController con = new UserMgmtController(); String filters="{\"groupOp\": \"OR\",\"rules\": [{\"field\": \"realname\",\"op\": \"eq\","+ "\"data\": \"1234\"},{\"field\": \"cityCode\",\"op\": \"ne\",\"data\": \"5678\"}]}"; SearchFilter searchFilter =con.jsonToSearchFilter(filters); System.out.println("gop="+searchFilter.getGroupOp()+" rules.size="+searchFilter.getRules().size()); } 结果:gop=OR rules.size=2
将java对象转换成json格式:
// 将Object 对象转换成 json public String objectToJson(Object obj) { ObjectMapper mapper = new ObjectMapper(); // Convert object to JSON string String jsonStr = null; try { jsonStr = mapper.writeValueAsString(obj); } catch (IOException e) { log.error(obj + "entity 轉換成 json出錯", e); e.printStackTrace(); System.out.println("entity 轉換成 json出錯"); } return jsonStr; }
将Object 转换成json字符串时,默认使用用是的驼峰方式,如果不想使用驼峰则可以增加红色部分设置,带下划线的也可以原样输出
public String objectToJson(Object obj){ ObjectMapper mapper = new ObjectMapper(); String json =null; try { PropertyNamingStrategy.PascalCaseStrategy pp = new PropertyNamingStrategy.PascalCaseStrategy(); mapper.setPropertyNamingStrategy(pp); json = mapper.writeValueAsString(obj); } catch (JsonProcessingException e) { log.error("json对象转换失败",e); e.printStackTrace(); } return json; }
结果:
"UpLoadDateTime":"2017-09-25 10:51:41", "OrganizationId":"B3EA5A4D-7C60-4C21-AF09-494890467C34" , "Test_Code":""
原文:https://www.cnblogs.com/Comet-Fei/p/12239736.html
内容总结
以上是互联网集市为您收集整理的转:将JSON数据转换成JAVA的实体类全部内容,希望文章能够帮你解决转:将JSON数据转换成JAVA的实体类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。