search
HomeJavajavaTutorialXML and JSON processing in Java

With the continuous development of network technology, XML and JSON have become the two most common data transmission formats. As a mainstream programming language, Java also provides a wealth of XML and JSON processing tools to facilitate developers to parse and generate data. This article will introduce how to use XML and JSON for data processing in Java.

1. XML processing

XML (eXtensible Markup Language) is a markup language used to describe and transmit data. In Java, we can use the following methods to process XML:

  1. Java DOM (Document Object Model)

Java DOM is a tree-based structure API (Application Programming Interface) can parse XML documents into a tree structure to facilitate developers to traverse it. The following is a simple Java DOM example:

// 指定XML文件路径
File xmlFile = new File("example.xml");

// 获取DocumentBuilderFactory实例
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

// 获取DocumentBuilder实例
DocumentBuilder builder = factory.newDocumentBuilder();

// 解析XML文件,生成Document对象
Document document = builder.parse(xmlFile);

// 获取根节点
Element root = document.getDocumentElement();

// 遍历子节点
NodeList nodeList = root.getElementsByTagName("book");
for (int i = 0; i < nodeList.getLength(); i++) {
    Element book = (Element) nodeList.item(i);
    String title = book.getElementsByTagName("title").item(0).getTextContent();
    String author = book.getElementsByTagName("author").item(0).getTextContent();
    String price = book.getElementsByTagName("price").item(0).getTextContent();
    System.out.println("title:" + title + ",author:" + author + ",price:" + price);
}
  1. Java SAX (Simple API for XML)

Java SAX is an event-driven API that uses event callbacks way to parse XML files. Compared with Java DOM, Java SAX is more efficient and suitable for processing large XML files. The following is a simple Java SAX example:

// 指定XML文件路径
File xmlFile = new File("example.xml");

// 实例化SAXParserFactory对象
SAXParserFactory factory = SAXParserFactory.newInstance();

// 实例化SAXParser对象
SAXParser parser = factory.newSAXParser();

// 读入XML文件,并处理事件
DefaultHandler handler = new DefaultHandler() {
    boolean title = false;
    boolean author = false;
    boolean price = false;

    public void startElement(String uri, String localName, String qName, Attributes attributes) {
        if (qName.equals("title")) {
            title = true;
        } else if (qName.equals("author")) {
            author = true;
        } else if (qName.equals("price")) {
            price = true;
        }
    }

    public void characters(char[] ch, int start, int length) {
        if (title) {
            System.out.println("title:" + new String(ch, start, length));
            title = false;
        } else if (author) {
            System.out.println("author:" + new String(ch, start, length));
            author = false;
        } else if (price) {
            System.out.println("price:" + new String(ch, start, length));
            price = false;
        }
    }
};

parser.parse(xmlFile, handler);

2. JSON processing

JSON (JavaScript Object Notation) is a lightweight data exchange format that is easy for humans to read and write. It is also easy to parse and generate by machines. In Java, we can use the following methods to process JSON:

  1. Java JSONObject

Java JSONObject is a JSON parsing class provided in Java SE 6. Strings or input streams can be parsed to generate JSON objects. Here is a simple Java JSONObject example:

// 定义JSON字符串
String jsonString = "{"name":"Lucy","age":20,"hobby":["reading","music"]}";

// 解析JSON字符串
JSONObject json = new JSONObject(jsonString);

// 获取对象属性
String name = json.getString("name");
int age = json.getInt("age");
JSONArray hobby = json.getJSONArray("hobby");

// 遍历数组
for (int i = 0; i < hobby.length(); i++) {
    System.out.println(hobby.get(i));
}
  1. Java GSON

GSON is a Java library provided by Google that can convert JSON strings into Java objects, or Convert Java object to JSON string. The following is a simple Java GSON example:

// 定义JSON字符串
String jsonString = "{"name":"Lucy","age":20,"hobby":["reading","music"]}";

// 解析JSON字符串
Gson gson = new Gson();
User user = gson.fromJson(jsonString, User.class);

// 获取对象属性
String name = user.getName();
int age = user.getAge();
List<String> hobby = user.getHobby();

// 遍历列表
for (String item : hobby) {
    System.out.println(item);
}

Note that the User class here needs to correspond to the format of the JSON string and contain the same attributes and attribute types.

3. Conclusion

Using XML and JSON for data processing in Java allows developers to complete data transmission and analysis more efficiently. Depending on the specific conditions of the data, you can choose Java DOM, Java SAX, Java JSONObject, Java GSON and other related tools for development.

The above is the detailed content of XML and JSON processing in Java. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
How do I use Maven or Gradle for advanced Java project management, build automation, and dependency resolution?How do I use Maven or Gradle for advanced Java project management, build automation, and dependency resolution?Mar 17, 2025 pm 05:46 PM

The article discusses using Maven and Gradle for Java project management, build automation, and dependency resolution, comparing their approaches and optimization strategies.

How do I create and use custom Java libraries (JAR files) with proper versioning and dependency management?How do I create and use custom Java libraries (JAR files) with proper versioning and dependency management?Mar 17, 2025 pm 05:45 PM

The article discusses creating and using custom Java libraries (JAR files) with proper versioning and dependency management, using tools like Maven and Gradle.

How do I implement multi-level caching in Java applications using libraries like Caffeine or Guava Cache?How do I implement multi-level caching in Java applications using libraries like Caffeine or Guava Cache?Mar 17, 2025 pm 05:44 PM

The article discusses implementing multi-level caching in Java using Caffeine and Guava Cache to enhance application performance. It covers setup, integration, and performance benefits, along with configuration and eviction policy management best pra

How can I use JPA (Java Persistence API) for object-relational mapping with advanced features like caching and lazy loading?How can I use JPA (Java Persistence API) for object-relational mapping with advanced features like caching and lazy loading?Mar 17, 2025 pm 05:43 PM

The article discusses using JPA for object-relational mapping with advanced features like caching and lazy loading. It covers setup, entity mapping, and best practices for optimizing performance while highlighting potential pitfalls.[159 characters]

How does Java's classloading mechanism work, including different classloaders and their delegation models?How does Java's classloading mechanism work, including different classloaders and their delegation models?Mar 17, 2025 pm 05:35 PM

Java's classloading involves loading, linking, and initializing classes using a hierarchical system with Bootstrap, Extension, and Application classloaders. The parent delegation model ensures core classes are loaded first, affecting custom class loa

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment