【XML】Java对象数据的XML和JSON表示
生活随笔
收集整理的這篇文章主要介紹了
【XML】Java对象数据的XML和JSON表示
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
XML與JSON
本文主要是基于之前的一份Java代碼,根據(jù)合理數(shù)據(jù)(下面的鏈接中有),設計對應的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對象的數(shù)據(jù)使用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格式存儲
同樣的數(shù)據(jù),也可以使用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代碼,在合理數(shù)據(jù)集的范圍內(nèi),編寫模擬數(shù)據(jù)的XML格式代碼和JSON格式代碼,并分別使用瀏覽器和JSLint,對其合法性加以驗證。
總結
以上是生活随笔為你收集整理的【XML】Java对象数据的XML和JSON表示的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据结构与算法】浅谈稀疏矩阵
- 下一篇: 【XML】XML树形结构