栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

文件解析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

文件解析

JSON:

JSON是一种轻量级的数据交换格式。它基于ECMAScript(European Computer Manufacturers Association,欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON称为理想的数据交换语言。易于人与阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

JSON作为一种轻量级的数据格式,它主要用途是在计算机系统之间进行数据的传递。JSON作为数据传输的格式,有一下显著优点:

· JSON只允许使用 UTF-8 编码,不存在编码问题

· JSON内容仅包含 key-value 键值对,格式简单,不存在冗余结构,是一种轻量级结构;

· 浏览器内置JSON支持,如果把数据用JSON发送个浏览器,可以用 JavaScript 直接处理;

Java解析JSON

在使用Java进行应用程序的开发中,我们会面临类似“将Java对象转换成JSON格式”或者“将JSON格式的数据转换成Java对象”的需求,所以我们需要掌握如何使用第三方库来进行JSON格式数据的解析。

 常用的用于解析JSON的第三方库有:

· Jackson【推荐】 

 · Gson

· Fastjson

· ...

 Fastjson

fastjson 是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将JavaBean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。

优点:

速度快:fastjson相对其他JSON库的特点是快,从2011年fastjson发布1.1x版本之后,其性能从未被其他Java实现的JSON库超越

使用广泛:fastjson在阿里巴巴大规模使用,在数万台服务器上部署,fastjson在业界被广泛接受。在2012年被开源中国评选为最受欢迎的国产开源软件之一。

测试完备:fastjson有非常多的testcase,在1.2.11版本中,testcase超过3321个。每次发布都会进行回归测试,保证质量稳定。

使用简单:fastjson的API十分简洁

功能完备:支持泛型,支持流处理超大文本,支持枚举,支持序列化和反序列化扩展。

Fastjson 的主要对象

fastjson 主要使用是 JSON 、JSONObject 、JSONArray 三个类。其中 JSONArray 和 JSONObject 继承 JSON:

JSON类

JSON类的作用主要是用于原始转换,常用方法有:

将Java对象 "序列化"(转换)为JSON字符串:JSON . toJSONString(Object  object)

如果需要自定义 json 中的 key ,可以使用 @JSONField 注解在成员变量进行设置。

// 实体数据
Weather weather = new Weather();
weather.setCity("呼和浩特");
weather.setComfort_index("天气良好");
weather.setDate_y("2022年07月14日");

// 转换为json格式的字符串
String json = JSON.toJSONString(weather);
System.out.println(json);

 

将JSON字符串反序列化为Java对象         

JSON.parseObject(String text)

// json格式数据
String jsonStr = "{"temperature":"29℃~41℃","weather":"多云转阴","weather_id":{"fa":"01","fb":"02"},"wind":"东北风微风","week":"星期日","city":"西安","date_y":"2022年07月10日","dressing_index":"炎热","dressing_advice":"天气炎热,建议着短衫、短裙、短裤、薄型T恤衫等清凉夏季服装。","uv_index":"中等","comfort_index":"","wash_index":"较适宜","travel_index":"较不宜","exercise_index":"较不宜","drying_index":""}";

// 转换成JSONObject
JSONObject jsonObj = JSON.parseObject(jsonStr);
System.out.println("日期:" + jsonObj.getString("date_y"));
System.out.println("天气:" + jsonObj.getString("weather"));
System.out.println("温度:" + jsonObj.getString("temperature"));

JSON.parseArray(String text)

// 转换成JSONArray
JSONArray jsonArray = JSON.parseArray(jsonStr);

// 遍历JSONArray
for(int i =0 ; i  

将JSON格式的数据,转换成指定的自定义实体类对象

JSON.parseObject(String text,Class clazz)         

// 转换成实体对象
Weather weather = JSON.parseObject(jsonStr, Weather.class);
System.out.println("日期:" + weather.getDate_y());
System.out.println("天气:" + weather.getWeather());
System.out.println("温度:" + weather.getTemperature());

JSONArray类

JSONArray 类主要用于封装数组集合类的数据,他继承自 ArrayList 类。

将JSON格式的数据,转换成指定的泛型集合。

 JSON.parseArray(String text, Class clazz)

List stationList = JSON.parseArray(jsonStr, PoliceStation.class);
for(PoliceStation ps : stationList) {
    System.out.println("名称:" + ps.getName());
    System.out.println("地址:" + ps.getAddress());
    System.out.println("电话:" + ps.getTelephone());
}

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1017053.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号