当前位置: 首页 > news >正文

网站的建设目标建设工程网站建筑工程预算

网站的建设目标,建设工程网站建筑工程预算,网站的链接优化,韩国美容网站模板Java处理json有很多种方法#xff0c;在这里总结一下。 1 Jackson Spring MVC 默认采用Jackson解析Json#xff0c;出于最小依赖的考虑#xff0c;也许Json解析第一选择就应该是Jackson。 1.1 引入的包 Jackson核心模块由三部分组成#xff1a;jackson-core、jackson-a…Java处理json有很多种方法在这里总结一下。 1 Jackson Spring MVC 默认采用Jackson解析Json出于最小依赖的考虑也许Json解析第一选择就应该是Jackson。 1.1 引入的包 Jackson核心模块由三部分组成jackson-core、jackson-annotations、jackson-databind。 由于jackson-databind 依赖 jackson-core 和 jackson-annotations所以只显示地添加jackson-databind依赖jackson-core 和 jackson-annotations 就会隐式地添加到 Java 项目工程中。 dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.9.6/version /dependency1.2 ObjectMapper类 ObjectMapper类是Jackson中基于“对象绑定”的API可以将JSON映射到Java对象反序列化也可以将Java对象映射到JSON序列化 默认情况下Jackson通过匹配JSON字段名称与Java类的gettersetter方法名将JSON的字段映射到Java类的属性。Jackson删除了gettersetter方法名称的get和set部分并将其余名称的第一个字符转换为小写后和JSON字段名称做比较相同即匹配上。 举例如果有Java类如下 public class Car {private String brand null;private int doors 0;// getter Setterpublic String getBrand() { return this.brand; }public void setBrand(String brand){ this.brand brand;}public int getDoors() { return this.doors; }public void setDoors(int doors) { this.doors doors; } }1.2.1 反序列化从JSON获得Java对象 ObjectMapper objectMapper new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); // false表示忽略没有匹配上的JSON字段String carJson { \brand\ : \Mercedes\, \doors\ : 5 }; // JSON字符串 Car car objectMapper.readValue(carJson, Car.class); // 从JSON字符串获取对象 Reader reader new StringReader(carJson); // JSON字符输入流 car objectMapper.readValue(reader, Car.class); // 从JSON字符输入流获取对象 // 类似的还有从File对象、URL对象、InputStream对象字节输入流、字节数组等获取java对象String jsonArray [{\brand\:\ford\}, {\brand\:\Fiat\}]; // JSON字符串数组 ListCar cars objectMapper.readValue(jsonArray, new TypeReferenceListCar(){}); // 从JSON数组字符串获取Java对象的数组String jsonObject {\brand\:\ford\, \doors\:5}; // JSON字符串Map MapString, Object jsonMap objectMapper.readValue(jsonObject, new TypeReferenceMapString,Object(){}); // 从JSON字符串获取Java Map注意还可以自定义反序列化规则这里不详解。 1.2.2 序列化将Java对象写入JSON ObjectMapper objectMapper new ObjectMapper();Car car new Car(); car.setBrand(BMW); car.setDoors(4);String json objectMapper.writeValueAsString(car); // 将Java对象序列化为JSON字符串 objectMapper.writeValue(new FileOutputStream(data/output-2.json), car); // 将Java对象序列化为JSON字符串并写入文件注意同样可以自定义序列化规则这里不详解。 1.3 JsonNode类 如果不知道接收到的JSON格式可以将其转换为JsonNode类即Jackson的JSON树模型。 1.3.1 JSON字符串和JsonNode对象相互转换 ObjectMapper objectMapper new ObjectMapper(); String carJson { \brand\ : \Mercedes\, \doors\ : 5 }; try {JsonNode jsonNode objectMapper.readValue(carJson, JsonNode.class); // 将JSON字符串转为JsonNode对象// JsonNode jsonNode objectMapper.readTree(carJson); // 和上一行代码功能完全相同 } catch (IOException e) {e.printStackTrace(); } String json objectMapper.writeValueAsString(jsonNode); // 将JsonNode对象转为JSON字符串1.3.2 JsonNode类访问JSON字段 ObjectMapper objectMapper new ObjectMapper(); String carJson { \brand\ : \Mercedes\, \doors\ : 5, \owners\ : [\John\, \Jack\, \Jill\], \nestedObject\ : { \field\ : \value\ } }; try {JsonNode jsonNode objectMapper.readValue(carJson, JsonNode.class);// 字符串JsonNode brandNode jsonNode.get(brand);String brand brandNode.asText();System.out.println(brand brand);// 整型JsonNode doorsNode jsonNode.get(doors);int doors doorsNode.asInt();System.out.println(doors doors);// 数组JsonNode array jsonNode.get(owners);JsonNode jsonNode array.get(0);String john jsonNode.asText();System.out.println(john john);// 子JSONJsonNode child jsonNode.get(nestedObject);JsonNode childField child.get(field);String field childField.asText();System.out.println(field field); } catch (IOException e) {e.printStackTrace(); }1.3.3 Java对象和JsonNode对象相互转换 ObjectMapper objectMapper new ObjectMapper(); Car car new Car(); car.brand Cadillac; car.doors 4; JsonNode carJsonNode objectMapper.valueToTree(car); // Java对象转JsonNode对象 Car car0 objectMapper.treeToValue(carJsonNode); // JsonNode对象转Java对象1.3.4 JsonNode类的set、put、remove ObjectMapper objectMapper new ObjectMapper(); ObjectNode objectNode objectMapper.createObjectNode(); // 创建空的JsonNode对象 JsonNode childNode readJsonIntoNode(); objectNode.set(child1, childNode); // 使用set方法给JsonNode添加子Node objectNode.put(field1, value1); // 使用put方法给JsonNode添加字段 objectNode.remove(field1); // 使用remove方法删除JsonNode某字段1.3.5 循环JsonNode所有字段 IteratorString fieldNames jsonNode.fieldNames(); // 创建Iterator遍历JsonNode字段 while(fieldNames.hasNext()) {String fieldName fieldNames.next();JsonNode field jsonNode.get(fieldName); }1.4 JsonParser类 1.5 JsonGenerator类 2 fastjson 3 Gson
http://www.yayakq.cn/news/4172/

相关文章:

  • 做下载网站用阿里云的什么产品青岛网站建设推广公司
  • 销售网站建设怎么样淘宝关键词挖掘工具
  • 厦门做企业网站找谁百度交易平台
  • 高端网站的制作苏州自助建站模板
  • 高端玩家seo网站推广
  • app门户网站wap源码之家
  • 网站建设费是广告费吗宽甸县建设局网站
  • 网站做代理服务器如何做网站相册
  • c 可以做网站吗查询个人信息的网站
  • 个人网站备案备注写什么WordPress小程序官网
  • 学生做网站期末作业muiteer主题 wordpress
  • 免费海报模板网站有关网站招标商务标书怎么做
  • a5网站诊断删除西部数码网站管理助手
  • 湖州童装网站wordpress后台编辑主题时提示:抱歉_该文件无法被编辑
  • 湖北 网站 备案 时间怎么在百度上推广产品
  • 门户网站 解决方案餐饮公司注册流程及费用
  • ps网站头部图片自己做免费的网站
  • 国外外贸网站有哪些问题html5旅游网站模板
  • 厦门知名做企业网站设计的公司广州网站建设联享科技
  • 小程序app分销网站建设wordpress 模板修改
  • 阿里云网站更换域名青岛网站设计推广
  • c2c的电子商务网站有哪些个人介绍网页怎么设计
  • 遵义网站常州网站建设基本流程
  • 阳西县住房和城乡建设部网站申请免费个人网页
  • 统一手机网站宁波网站推广优化公司
  • 建设一个图片下载网站营销型网站建设菲凡网
  • 更改网站文章上传时间给公司做网站的公司
  • 网站无法连接mysqlwordpress已运行时间
  • 列举网站开发常用的工具网站后台登陆代码
  • 怎么自己做一个网站平台WordPress博客设置最新文章