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

网站kwordpress文章同步插件

网站k,wordpress文章同步插件,怎么建设一个响应式网站,wordpress 文章类型模板Java处理json有很多种方法,在这里总结一下。 1 Jackson Spring MVC 默认采用Jackson解析Json,出于最小依赖的考虑,也许Json解析第一选择就应该是Jackson。 1.1 引入的包 Jackson核心模块由三部分组成: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 项目工程中。

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.6</version>
</dependency>

1.2 ObjectMapper类

ObjectMapper类是Jackson中基于“对象绑定”的API,可以将JSON映射到Java对象(反序列化),也可以将Java对象映射到JSON(序列化)

默认情况下,Jackson通过匹配JSON字段名称与Java类的getter&setter方法名,将JSON的字段映射到Java类的属性。Jackson删除了getter&setter方法名称的getset部分,并将其余名称的第一个字符转换为小写后,和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字符串(数组)
List<Car> cars = objectMapper.readValue(jsonArray, new TypeReference<List<Car>>(){}); // 从JSON数组字符串获取Java对象的数组String jsonObject = "{\"brand\":\"ford\", \"doors\":5}"; // JSON字符串(Map)
Map<String, Object> jsonMap = objectMapper.readValue(jsonObject, new TypeReference<Map<String,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所有字段

Iterator<String> 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/474867/

相关文章:

  • 网站页面关键字在哪里搜索引擎营销的模式有
  • 如何查询网站的空间大小表单付款 wordpress
  • A00网站建设西安seo包年服务
  • 我想做直播网站该怎么做策划营销推广方案
  • 广西建设厅官网站微信怎么注册小程序商店
  • 网站备案怎么取消wordpress 强制换行
  • 有什么有趣的网站seo顾问是啥
  • 南京好的网站设计app开发费用预算表格
  • 老板让我做镜像网站犯法吗wordpress免费绑定域名
  • 牟长青 做网站推广的四个基本要点深圳seo推广
  • 网站百度网盘做网站怎么自定义背景图片
  • 营销型网站设计流程北京网络营销外包公司哪家好
  • 禹城建设局网站app网站制作公司
  • 钓鱼网站的制作教程设计图案大全
  • 济南网站开发定制百度2022第三季度财报
  • 网站建设中 动画个人免费网站建设模板
  • 一步步教你做电商网站对外网站建设情况汇报
  • 网站建设服务后所有权归谁室内设计效果图手绘客厅
  • 音乐网站建设的意义北京 工业网站建设公司价格
  • 手机设计企业网站西安市做网站的公司
  • 网页生成微信小程序怎么优化一个网站关键词
  • 大岭山网站站点建设网站
  • 网站外链优化方法小吃培训去哪里学最好
  • 搜阅网站建设自己怎么做直播网站
  • 购物网站两化融合建设项目报告shopwt多用户商城系统
  • 医疗网站建设流程下载安装微信app
  • 网站做平台有哪些比较好的网站建设论坛
  • 网站开发目的任丘建设网站制作
  • 网站如何做跳板网站开发文档下载
  • 北京网站制作长沙网页制作与设计答案