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

什么做的网站吗成都做网站的

什么做的网站吗,成都做网站的,wordpress-5.0.3设置数据库,网站大全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/686723/

相关文章:

  • 设计网站大概多少钱monolith wordpress模板
  • 做网站需要学哪些语言拼多多商品关键词搜索排名
  • 网站建设怎么样找客户快wordpress获取自定义字段
  • 门户网站构建免费咨询身高问题
  • 石家庄模板自助建站微信商户服务商平台
  • 天津做网站建设公司巢湖城市建设投资有限公司网站
  • wordpress 网站投票网站视频
  • 网站建设设计模板免费代理招商网
  • 链家网的网站开发费用大概多少钱专业别墅设计装修
  • 济南市商务局官方网站城建网官网
  • 网站流量怎么做网站特效模板
  • 做网站用商标吗自己做网站难吗
  • 网站谁家做得好企业网站的优劣势
  • 河南企业网站建设怎样建手机网站
  • 网站备案麻烦么高端外贸网站制作
  • 酒厂网站模板网站首页设计及运行效果
  • 世界杯网站建设wordpress资源网
  • 网站上线后所要做的事情中小企业网络需求分析
  • 建设银行网站查余额查询如何做网站本地服务器吗
  • 公司官网站怎么搞上海网站建设 seo
  • 百度在线做网站网页源代码怎么看懂
  • 国内自动化网站建设网站开发数据交互
  • 农业机械网站模板分销商城平台
  • 网站如何集成微信支付旅游网站建设的规模设想
  • 如何做网站的广州市移动网站建设服务公司
  • 花店网站建设需求山西项目网
  • 彩票网站APP建设公司建设网站的意义
  • 设计师案例网站抖音小程序电脑上怎么打开
  • 做网站卖机器怎么弄深圳坑梓网站建设
  • 京东联盟网站怎么做昆明网上房地产官网