【XML】Java对象数据的XML和JSON表示
XML与JSON
本文主要是基于之前的一份Java代码,根据合理数据(下面的链接中有),设计对应的XML格式和JSON格式的存储表示,并使用工具对其合法性加以验证。
JavaCode
先看Java的代码,完整版在这里 → 完整版
下面是这里会用到的的部分类:
public class Product {private String code;private String description;private double price;public Product(String code, String description, double price) {this.code = code;this.description = description;this.price = price;}public String getCode() {return this.code;}public String getDescription() {return this.description;}public double getPrice() {return this.price;}@Overridepublic boolean equals(Object product) {return (product instanceof Product) && (this.getCode().equals(((Product)product).getCode()));}@Overridepublic String toString() {return this.getCode() + "," + this.getDescription() + "," + this.getPrice();}}
public class OrderItem {private Product product;private int quantity;public OrderItem(Product product, int quantity) {this.product = product;this.quantity = quantity;}public Product getProduct() {return this.product;}public void setQuantity(int quantity) {this.quantity = quantity;}public int getQuantity() {return this.quantity;}public double getValue() {return this.getProduct().getPrice() * this.getQuantity();}@Overridepublic String toString() {return this.getQuantity() + "," + this.getProduct().getCode() + "," + this.getProduct().getPrice();}}
import java.util.ArrayList;public class Order {private ArrayList<OrderItem> orderItemList = new ArrayList<>();public void addOrderItem(OrderItem orderItem) {this.orderItemList.add(orderItem);}public void removeOrderItem(OrderItem orderItem) {this.orderItemList.remove(orderItem);}public ArrayList<OrderItem> getAllOrderItem(){return this.orderItemList;}public OrderItem getOrderItem(Product product) {for (OrderItem orderItem : orderItemList) {if (orderItem.getProduct().equals(product)) {return orderItem;}}return null;}public int getNumberOfOrderItems() {return this.orderItemList.size();}public double getValue() {double value = 0.0;for (OrderItem orderItem : orderItemList) {value += orderItem.getValue();}return value;}}
import java.util.ArrayList;public class Sales {private ArrayList<Order> orders = new ArrayList<>();public void addOrder(Order order) {this.orders.add(order);}public ArrayList<Order> getAllOrder(){return this.orders;}public int getNumberOfOrders() {return this.orders.size();}}
使用XML格式存储
可以将Sales对象的数据使用XML格式来存储。
XML
<?xml version="1.0" encoding="UTF-8" ?>
<SALES><ORDER><ORDERITEM><PRODUCT><CODE>A001</CODE><DESCRIPTION>Almond Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>3</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A002</CODE><DESCRIPTION>Irish Creme Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>5</QUANTITY></ORDERITEM></ORDER><ORDER><ORDERITEM><PRODUCT><CODE>A001</CODE><DESCRIPTION>Almond Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>1</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A004</CODE><DESCRIPTION>Caramel Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>2</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A006</CODE><DESCRIPTION>Gourmet Coffee Travel Thermo</DESCRIPTION><PRICE>18.0</PRICE></PRODUCT><QUANTITY>3</QUANTITY></ORDERITEM></ORDER><ORDER><ORDERITEM><PRODUCT><CODE>A009</CODE><DESCRIPTION>Gourmet Coffee 36 Cup Filters</DESCRIPTION><PRICE>45.0</PRICE></PRODUCT><QUANTITY>100</QUANTITY></ORDERITEM></ORDER>
</SALES>
浏览器解析XML
XML解析错误
如果我们删去最后一行的<\SALES>,就会解析错误:
使用JSON格式存储
同样的数据,也可以使用JSON格式来存储。
JSON
[[{"product":{"code":"A001","description":"Almond Flavored Syrup","price":"9.0"},"quantity":"3"},{"product":{"code":"A002","description":"Irish Creme Flavored Syrup","price":"9.0"},"quantity":"5"}],[{"product":{"code":"A001","description":"Almond Flavored Syrup","price":"9.0"},"quantity":"1"},{"product":{"code":"A004","description":"Caramel Flavored Syrup","price":"9.0"},"quantity":"2"},{"product":{"code":"A006","description":"Gourmet Coffee Travel Thermo","price":"18.0"},"quantity":"3"}],[{"product":{"code":"A009","description":"Gourmet Coffee 36 Cup Filters","price":"45.0"},"quantity":"100"}]
]
JSLint验证
总结
本文基于之前的一份Java代码,在合理数据集的范围内,编写模拟数据的XML格式代码和JSON格式代码,并分别使用浏览器和JSLint,对其合法性加以验证。
【XML】Java对象数据的XML和JSON表示相关推荐
- [工具库]JOXMLBuilder工具类——一键把多个bean对象数据转换为XML格式数据
本人大四即将毕业的准程序员(JavaSE.JavaEE.android等)一枚,小项目也做过一点,于是乎一时兴起就写了一些工具. 我会在本博客中陆续发布一些平时可能会用到的工具. 代码质量可能不是很好 ...
- JAXB:Java对象序和XML互相转化的利器
JAXB(Java Architecture for XML Binding简称JAXB)允许Java开发人员将Java类映射为XML表示方式.JAXB提供两种主要特性:将一个Java对象序列化为XM ...
- java 解析word模板为xml, 动态填充数据到xml,最后输出word文档
java 解析word模板为xml, 动态填充数据到xml,最后输出word文档 在项目中, 一开始是使用java Apache poi 根据word模板生成word报表, 后面发现框架有个低版本的p ...
- 将Java对象序列化成XML格式,将XML反序列化还原为Java对象
摘要:将Java对象序列化成XML格式,将XML反序列化还原为Java对象. 一:创建Maven工程,引入xstream依赖: <!--xstream--><dependency&g ...
- java对象转xml 高性能_通过实例学习JAVA对象转成XML输出
一.总体说明 XML和JSON 是最为常用的数据交换格式 本例子演示如何将java对象,转成XML输出. 二.流程 1.在上文的例子中,创建一个包"com.waylau.rest.bean& ...
- dom4j java对象_dom4j解析XML成对象
最近不太忙,发现现在服务之间的交互都是通过xml进行的,所以今天理了一下xml的两种解析方式.首先是最流行的dom4j解析.先解析,然后通过反射转成对象. 用到的jar:dom4j-1.6.1.jar ...
- java property xml,Java开发中读取XML与properties配置文件的方法
相关阅读: 1. XML文件: 什么是XML?XML一般是指可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. 2.XML文件的优点: 1)XML文档内容和结构完 ...
- JAVA对象通过jackson转成json格式,属性名首字母变成小写的解决方法
2019独角兽企业重金招聘Python工程师标准>>> java代码对象如下: package com.evideostb.billsystem.module.model;impor ...
- Netty中集成Protobuf实现Java对象数据传递
场景 Netty的Socket编程详解-搭建服务端与客户端并进行数据传输: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1086 ...
最新文章
- 零基础自学python的app-编程零基础应当如何开始学习 Python?
- 批量(导入导出)迁移AD中的用户信息和密码到新环境中,同时保持用户在MOSS中的权限【addusers,ldifde,copypwd,UserInfo,tp_SystemID】...
- 公子龙:我读研期间通过实习和比赛收入五十万
- 一些技术社区关于博客内图片 markdown 源代码的字数统计
- commons-lang3:DateUtils
- 开启 JM 的 trace 功能
- Redis数据库的连接
- HDU 6155 Subsequence Count(矩阵乘法+线段树+基础DP)
- 万字长文详解二叉树算法,再也不怕面试了!| 技术头条
- Google 对战微软阿里,AIoT 进入“战国时代”!
- C# 字符串拼接性能探索 c#中+、string.Concat、string.Format、StringBuilder.Append四种方式进行字符串拼接时的性能...
- intptr java_intptr_t 其实不是指针类型 (转载)
- Protel网络教程
- Java job interview:WinForm桌面小程序设计思想及项目实现思路
- 导航栏隐藏的正确方式
- Python——文件读写
- 清华校友、香港科技大学准博士ICCV顶会论文被爆公然抄袭!去年CVPR也是抄的...
- 【读书笔记】《读懂一本书》——如何读书不枯燥,读得懂,记得住
- 创新实训(9)——SpringBoot整合solr
- SPI通信协议详解,一篇就够!