ava常见数据交换格式——xmljsonyaml寻觅beyond

每一种编程语言都有不同的数据结构,在多个应用程序之间,如果编写每一个应用程序的编程语言都不同,那么他们的数据是不能直接传递的,需要将他们转换为特定的格式,然后再进行传输,保证发送方和接收方都能正确的读取数据。

另外,不同操作系统,不同平台之间实现数据共享,也需要将数据转换为两个平台或者操作系统都能读取的格式。

数据交换格式就是“应用程序间通信时使用的数据格式”,而常见的数据交换格式包括:XML、JSON、YAML。

下面就是用Java来实现上面这3种格式的操作。

xml(eXtensible Markup Language),可扩展标记语言,详细的介绍可以自行查阅。

在xml中,有几个专业术语:

节点:比如上面的<books>、<book>、<name>、<price>、<language>、<author>;

节点值:比如"Effective Java" 是< name>节点的值;

属性:比如<book>节点的id属性;

属性值:<book>节点的id属性值分别为1、2.

注意,每一个节点都可以有子节点,比如<books>的子节点有<book>节点,而<book>的子节点包括<name>、<price>、<language>、<author>;

在使用Java来操作xml的时候,一般就是对于上面这几个内容进行处理,比如获取节点名称和及节点值、节点属性和属性值。Java常用XML解析方式有4种:DOM解析、SAX解析、DOM4J解析、JDOM解析。

在此之前,需要了解一下节点类型:

Java中内置了一些API来使用DOM方式解析xml。不需要另外导入其他jar包。

运行结果:

需要注意,使用DOM方式解析xml时,需要将整个xml文件都加载进内存,再进行解析。

其次,dom方式解析和我们在前端JavaScript DOM编程的方式很相似,可以参考JavaScript DOM编程艺术。

SAX方式和DOM方式有一个明显的区别:SAX方式是从上往下逐个解析的。

Java内置了使用SAX方式解析xml的API,所以不需要导入其他jar包。

使用SAX方式的解析xml,需要我们自己定义一个Handler(一个class),继承DefaultHandler,自己定义怎么去解析xml中的节点。

运行结果:

这里介绍几种构造json的方式:

使用JSONObject,可以将jsonobject对象、map集合、javabean对象中的数据转换为json格式。转换为json格式之后就可以进行传输了。

这种方式需要引入json-java的依赖;

如果使用maven可以自己根据上面的jar包下载地址设置依赖。

这种方式,就是先创建一个map,然后向map中put键和值,然后将map作为JSONObject构造方法的参数,然后得到的JSONObject对象就是包含了map数据的json。最后调动toString接口输出json。

运行结果和上一个代码的运行结果一样。

利用JavaBean来创建json,先创建一个javabean:

测试代码:

运行结果和前面的结果一样。

当我们在程序中接收到其他地方传过来的json格式数据的时候,可以使用JSONObject去读取数据中的内容。

json数据可以是别的应用程序传输过来的,也可以是本地生成的,或者是存储在文件中,无论什么样的方式,都可以将其转换为同一个的格式进行处理。

编写解析程序

上面使用gson将一个person对象转换为json时,注意,json中的key都是和person对象中的属性名相同的。如果遇到一些情况,我们的类中的属性名,不是和json中的key相同,那么需要使用一个@Ser注解。

在上面gson将person转换为json的代码,缩进之后输出如下:

上面的除了使用注解来实现设置json中属性对应的key值,另外,还可以使用gson提供的fieldNamingStrategy来设置json中key的名称。

前面的输出json内容都是经过手动缩进的,如果没有手动缩进,那么内容就是一个很长的字符串。

我们在调试的时候,一般都是会将json美化后输出,因为便于阅读,但在实际的生产环境中一般不会将json美化后传送。

虽然有很多的json格式化工具,但是gson中提供了接口,可以将json进行美化后输出(不用自己手动缩进了)

前面介绍了使用gson将javabean对象转换为json格式,通过使用gson还能将json格式的数据转换为javabean对象,并且,使用gson比是用JSONObject更加方便。

有些时候,我们一个类中的某个属性,不允许暴露给外界,但是前面的集中做法中,都是将所有的属性暴露给了外界,这是存在安全隐患的,在对象序列化的时候,也会存在这个问题,他们的解决方式相同,都是在属性的前面增加一个transient关键字,比如Person中的wage属性在序列化或者转换为json时,不允许暴露给外籍,可以这样声明wage属性:

fastjson是alibaba开源的一个项目,也是用来处理json的。他的用法和其他几种方式相似,这里只介绍一下常用的API。

THE END
0.java读取文件内容,解析Json格式数据方式java这篇文章主要介绍了java读取文件内容,解析Json格式数据方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教+ 目录 java读取文件内容,解析Json格式数据 一、读取txt文件内容(Json格式数据) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 public static String jvzquC41yy}/lk:30pku1jwvkerf1;7423
1.如何去掉json字符串中\java步骤1:读取JSON字符串 首先,我们需要获得要处理的JSON字符串。可以从文件或网络接口中读取。 String jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"; 步骤2:去掉转义字符 接下来,我们可以使用Java字符串来处理函数replaceAll()去掉JSON字符串中的转义字符。我们可以使用正则表达式jvzquC41yy}/v~qkpi~vg‚zcp0io1}q|z1ptr897;34ivvq
2.Python与JSON:数据序列化反序列化的艺术与实践PythonPython作为一门功能强大的脚本语言,内置了对JSON的完美支持,通过其标准库中的`json`模块,开发者可以轻松地实现Python对象与JSON格式数据之间的相互转换。本文将深入探讨Python中JSON文件的操作,从基础概念到高级用法,并提供丰富的代码示例,助你成为Python JSON处理的高手。jvzquC41yy}/uqzkjwjii7hp13933<90jvsm
3.Java如何快速读取&解析JSON数据(文件),获取想要的内容?第三步:复制Json内容,创建对应类 第四步:读取Json文件,提取目标数据 总结 前言 工作做,有时候会碰到一些复杂的Json格式数据(复杂的数据一般都是json.file文件),大部分字段可能对我们没有用,因此我们需要去主动格式化,只提取或者过滤我们想要的数据。 准备工作 开发工具:intellij idea 插件:Gsonformat 下载地址如下: jvzquC41dnuh0lxfp0tfv8v47:;35=:61cxuklqg1fkucrqu13939?93:8
4.三万字盘点Spring/Boot的那些常用扩展点腾讯云开发者社区PropertiesPropertySourceLoader:可以解析properties或者xml结尾的配置文件 YamlPropertySourceLoader:解析以yml或者yaml结尾的配置文件 所以可以看出,要想实现json格式的支持,只需要自己实现可以用来解析json格式的配置文件的PropertySourceLoader就可以了。 动手来一个。 实现可以读取json格式的配置文件 实现这个功能,只需要两步就jvzquC41enuvf7ygpekov7hqo1jfxnqqrgx0c{ykenk049::787
5.java读写本地json文件方法java读取json文件AI写代码java 运行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 二、读取json文件 /** * 读取json文件数据 * * @param jsonPath json文件路径 * @return 字符串 */publicstaticStringreadJson(StringjsonPath){FilejsonFile=newFile(jsonPath);try{FileReaderfileRejvzquC41dnuh0lxfp0tfv8|gkzooa=;:5:9488ftvkimg8igvcomu8662782:A=
6.JAVA学习如何读取本地json文件java读取json文件1、JSON文件格式 文件内容如下,文件名称为:rule.json 2、json文件的读取 InputStreaminputStream=this.getClass().getClassLoader().getResourceAsStream("static/rule.json");// 使用Jackson的ObjectMapper来解析JSONObjectMapperobjectMapper=newObjectMapper();List<Map>mapList=objectMapper.readValue(inputStream,newTypejvzquC41dnuh0lxfp0tfv8|gkzooa=;383;7:8ftvkimg8igvcomu8663:?88?9
7.java实现读取json文件指定字段值溺水的小金鱼java实现读取json文件指定字段值 使用场景 现有一个大数据的json文件,每条数据有多层数据信息。现在想把其中某个字段提取并叠加计算。 json文件格式 1{2"MsgID":"111",3"TaskData":{4"TaskID":1,5"RouteData":{6"OrgPt":{"Angle":180},7"ExtendField":{"High":"580"},8"RoutePts":[],9"jvzquC41yy}/ewgnqiy/exr1fczbensvgt5q1::7;6>927mvon
8.如何使用Java将JSON文件读取为字符串?这三种方法很管用!本文介绍了在Java中读取JSON文件的三种方法:使用java.io包中的FileReader和BufferedReader,使用java.nio包的Files和Path,以及借助第三方库Gson和Jackson。这些方法可以将JSON文件内容转换为字符串。 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它可以用来存储和传输结构化的数据。在 Java 中,有多种方法jvzquC41dnuh0lxfp0tfv8|gkzooa=82479558ftvkimg8igvcomu86525:5;<9
9.java读取json格式文件.josn文件java读取java 读取json格式文件 本文介绍了一个使用Java编写的私有方法,该方法通过传递文件路径参数,利用BufferedReader和IOUtils来读取并返回JSON文件的内容。如果读取过程中遇到IOException,将记录错误并返回null。 private String readJsonFile(String filePath) { try (BufferedReader reader = new BufferedReader(new FileReaderjvzquC41dnuh0lxfp0tfv8vsa5;74<<951gsvrhng1jfvjnnu1>55<58;9
10.Spark深入学习16官网学习SparkSQLJonsonLi3.2 Parquets文件格式 3.2.1 读取Parquet文件 3.2.2 解析分区信息 3.2.3 Schema合并 3.2.4 Hive元与Parquet表转换 3.3 JSON数据集 3.4 Hive表 3.5 JDBC连接其他库 4 性能调优 4.1 缓存数据至内存 4.2 调优参数 5 分布式SQL引擎 5.1 运行Thrift JDBC/ODBC服务 jvzquC41yy}/ewgnqiy/exr1nkiigwl1r1<94;9750nuou
11.java如何实现抽取json文件指定字段值java这篇文章主要介绍了java如何实现抽取json文件指定字段值,具有很好的参考价值,希望对大家有所帮助。+ 目录使用场景我有一个5000条数据的json文件,每条数据包含地名、该地的经纬度等其他很多信息。现在想把地名和经纬度抽出来导入到数据库中。navicat自带的导入json格式文件不好用,只能导入json文件中的外层数据,而我需要jvzquC41yy}/lk:30pku1jwvkerf1;:398>/j}r
12.Java读取本地json文件王陸import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.io.*; public class JsonTest { //读取json文件 public static String readJsonFile(String fjvzquC41yy}/ewgnqiy/exr1ymlwc€q1r172:@;3294ivvq
13.Java中JSON数据的读取和解析java读取json文件并解析Java中JSON数据的读取和解析 博主在Spring Boot项目中进行JSON文件读取和解析,记录学习过程。包括配置FastJson、构建工具类,以GeoJSON为例展示JSON文件,还介绍了调用工具类读取数据,如读取不同类型字段及整体解析的方法。 在做springboot项目时用到了json文件读取和解析,所以在这里记录一下学习过程中总结的一些点,希望对jvzquC41dnuh0lxfp0tfv8vsa6;23A>271gsvrhng1jfvjnnu1739>63777
14.C++通过jsoncpp类库读写JSON文件json用法详解tostyledstring截断本文详细介绍了JSON数据格式的特点及应用,包括如何使用Jsoncpp库进行JSON数据的读取、解析与存储。通过实例展示了从字符串和文件中读取JSON数据的方法,以及如何将数据转换并保存为JSON格式。 介绍: JSON 是常用的数据的一种格式,各个语言或多或少都会用的JSON格式。 JSON是一个轻量级的数据定义格式,比起XML易学易用,jvzquC41dnuh0lxfp0tfv8vsa4>47:;2;1gsvrhng1jfvjnnu1>59;5857
15.java从文件中读取json赵磊磊java从文件中读取json wangxiaoer.json里面存放了json数据 需要依赖common-io.jarjvzquC41yy}/ewgnqiy/exr1|jgpnnnigik0r8::82=887mvon
16.javajson文件解析Java解析json文件为对象本文介绍了如何在Java中使用Jackson的ObjectMapper解析包含复杂结构的GeoJSON文件。通过创建对应的Java类来映射JSON结构,并展示了测试代码以读取并打印JSON文件内容。 需求来源 在项目中经常会遇到从第三方接口调用数据的情况,比如爬虫、封装接口,但是这个时候接收到的数据也是JSON格式的,例如: jvzquC41dnuh0lxfp0tfv8|gkzooa;<:94<238ftvkimg8igvcomu86369>57A7
17.java解析js数组java读取json文本及jsonArray的使用本文介绍了JSON作为一种数据传输格式的几个优点,包括其简单的编码规则和浏览器的内置支持。通过示例展示了如何解析JSON文件,特别是如何处理JSONArray和JSONObject。博主分享了如何在Java中读取JSON文件并提取关键数据,如键值对和数组,并使用Fastjson库进行操作。此外,还提供了不使用Maven而是直接引入jar文件的方法。 jvzquC41dnuh0lxfp0tfv8|gkzooa<>9287398ftvkimg8igvcomu86366:66A8
18.Java读取项目json文件并转为JSON对象的操作java这篇文章主要介绍了Java读取项目json文件并转为JSON对象的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教 Java读取项目json文件并转为JSON对象 1、创建json文件(demo.json) 1 2 3 4 5 6 7 8 9 10 11 12 jvzquC41yy}/lk:30pku1jwvkerf1;6;59