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表示相关推荐

  1. [工具库]JOXMLBuilder工具类——一键把多个bean对象数据转换为XML格式数据

    本人大四即将毕业的准程序员(JavaSE.JavaEE.android等)一枚,小项目也做过一点,于是乎一时兴起就写了一些工具. 我会在本博客中陆续发布一些平时可能会用到的工具. 代码质量可能不是很好 ...

  2. JAXB:Java对象序和XML互相转化的利器

    JAXB(Java Architecture for XML Binding简称JAXB)允许Java开发人员将Java类映射为XML表示方式.JAXB提供两种主要特性:将一个Java对象序列化为XM ...

  3. java 解析word模板为xml, 动态填充数据到xml,最后输出word文档

    java 解析word模板为xml, 动态填充数据到xml,最后输出word文档 在项目中, 一开始是使用java Apache poi 根据word模板生成word报表, 后面发现框架有个低版本的p ...

  4. 将Java对象序列化成XML格式,将XML反序列化还原为Java对象

    摘要:将Java对象序列化成XML格式,将XML反序列化还原为Java对象. 一:创建Maven工程,引入xstream依赖: <!--xstream--><dependency&g ...

  5. java对象转xml 高性能_通过实例学习JAVA对象转成XML输出

    一.总体说明 XML和JSON 是最为常用的数据交换格式 本例子演示如何将java对象,转成XML输出. 二.流程 1.在上文的例子中,创建一个包"com.waylau.rest.bean& ...

  6. dom4j java对象_dom4j解析XML成对象

    最近不太忙,发现现在服务之间的交互都是通过xml进行的,所以今天理了一下xml的两种解析方式.首先是最流行的dom4j解析.先解析,然后通过反射转成对象. 用到的jar:dom4j-1.6.1.jar ...

  7. java property xml,Java开发中读取XML与properties配置文件的方法

    相关阅读: 1. XML文件: 什么是XML?XML一般是指可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. 2.XML文件的优点: 1)XML文档内容和结构完 ...

  8. JAVA对象通过jackson转成json格式,属性名首字母变成小写的解决方法

    2019独角兽企业重金招聘Python工程师标准>>> java代码对象如下: package com.evideostb.billsystem.module.model;impor ...

  9. Netty中集成Protobuf实现Java对象数据传递

    场景 Netty的Socket编程详解-搭建服务端与客户端并进行数据传输: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1086 ...

最新文章

  1. 零基础自学python的app-编程零基础应当如何开始学习 Python?
  2. 批量(导入导出)迁移AD中的用户信息和密码到新环境中,同时保持用户在MOSS中的权限【addusers,ldifde,copypwd,UserInfo,tp_SystemID】...
  3. 公子龙:我读研期间通过实习和比赛收入五十万
  4. 一些技术社区关于博客内图片 markdown 源代码的字数统计
  5. commons-lang3:DateUtils
  6. 开启 JM 的 trace 功能
  7. Redis数据库的连接
  8. HDU 6155 Subsequence Count(矩阵乘法+线段树+基础DP)
  9. 万字长文详解二叉树算法,再也不怕面试了!| 技术头条
  10. Google 对战微软阿里,AIoT 进入“战国时代”!
  11. C# 字符串拼接性能探索 c#中+、string.Concat、string.Format、StringBuilder.Append四种方式进行字符串拼接时的性能...
  12. intptr java_intptr_t 其实不是指针类型 (转载)
  13. Protel网络教程
  14. Java job interview:WinForm桌面小程序设计思想及项目实现思路
  15. 导航栏隐藏的正确方式
  16. Python——文件读写
  17. 清华校友、香港科技大学准博士ICCV顶会论文被爆公然抄袭!去年CVPR也是抄的...
  18. 【读书笔记】《读懂一本书》——如何读书不枯燥,读得懂,记得住
  19. 创新实训(9)——SpringBoot整合solr
  20. SPI通信协议详解,一篇就够!

热门文章

  1. Tomcat端口冲突
  2. net 中web.config一个配置文件解决方法 (其他配置文件引入方式)
  3. React之组件通信
  4. STM32学习笔记(五)——通用定时器计数延时
  5. Jmeter文章索引贴
  6. (转)CDN是如何工作的?
  7. flash动画制作常用代码
  8. 分治法在二叉树遍历中的应用(JAVA)--二叉查找树高度、前序遍历、中序遍历、后序遍
  9. python 复数求模_Python基础语法知识汇总(学习党的最爱!)
  10. matlab火焰测温源程序,一种火焰测温方法与流程