个性化阅读
专注于IT技术分析

如何在Java中轻松使用JSON

本文概述

JSON是一种轻量级的, 独立于语言的数据交换格式, 如今在每个可用的Web API上都在使用。如果你愿意在Java环境中处理此类数据, 我们将向你说明如何使用org.json包轻松实现。

1.包含org.json包

Java默认情况下不像PHP或其他语言那样提供任何集成的功能来解析或创建JSON, 相反, 你将需要依赖第三方库/包。在本教程中, 我们将使用org.json。该软件包中的文件在Java中实现JSON编码器/解码器。它还具有在JSON和XML, HTTP标头, Cookie和CDL之间转换的功能。这是参考实现。 Java中有大量的JSON包。也许有一天, Java社区将标准化一个。在此之前, 我们建议你使用org.json软件包, 它使事情变得非常简单。

你可以从maven存储库下载软件包的jar文件, 然后将其手动包含在你的项目中, 或者如果你的项目基于maven, 则可以编辑pom.xml文件并添加依赖项:

<!-- https://mvnrepository.com/artifact/org.json/json -->
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20140107</version>
</dependency>

有关此软件包的更多信息, 请在此处访问Maven的官方存储库。包含库之后, 你将可以使用import org.json。*导入软件包。在你的代码中。

2.使用该库操作JSON

作为《我们的代码世界》中的每个教程, 你都将通过阅读并阅读一些示例来学习。在Java中使用JSON时, 我们将与你分享一些最常用的功能:

A.创建JSON对象

JSONObject类的put方法允许你使用对象的值定义一个新键:

package sandbox;

import org.json.*;

public class Sandbox {
    
    /**
     * Generating a JSON Object
     * 
     * @param args 
     */
    public static void main(String[] args) {
        JSONObject myObject = new JSONObject();

        // Basic strings
        myObject.put("name", "Carlos");
        myObject.put("last_name", "Carlos");
        
        // Primitive values
        myObject.put("age", new Integer(21));
        myObject.put("bank_account_balance", new Double(20.2));
        myObject.put("is_developer", new Boolean(true));
        
        // Key with array
        double[] myList = {1.9, 2.9, 3.4, 3.5};
        myObject.put("number_list", myList);
        
        // Object inside object
        JSONObject subdata = new JSONObject();
        myObject.put("extra_data", subdata);

        // Generate JSON String
        System.out.print(myObject);
    }
}

该代码将在控制台中生成的JSON字符串打印以下结构:

{
  "number_list": [
    1.9, 2.9, 3.4, 3.5
  ], "extra_data": {}, "name": "Carlos", "last_name": "Carlos", "bank_account_balance": 20.2, "age": 21, "is_developer": true
}

B.创建JSON数组

JSONArray类的put方法允许你将一些值推入数组:

package sandbox;

import org.json.*;

public class Sandbox {
    
    /**
     * Generating a JSON Array
     * 
     * @param args 
     */
    public static void main(String[] args) {
        JSONArray myArray = new JSONArray();
        
        // Push mixed values to the array
        myArray.put(1);
        myArray.put(2);
        myArray.put(3);
        myArray.put(4);
        myArray.put(new Boolean(true));
        myArray.put(new Boolean(false));
        myArray.put("Some String Value");
        
        // Generate JSON String
        System.out.print(myArray);
    }
}

该代码将在控制台中生成的JSON字符串打印以下结构:

[1, 2, 3, 4, true, false, "Some String Value"]

C.解析JSON字符串

如果你愿意在代码中转换JSON字符串(将其转换为数组或对象), 则只需根据类型将字符串作为类的构造函数的第一个参数提供即可, 例如, 如果要转换JSONArray:

package sandbox;

import org.json.*;

public class Sandbox {
    
    /**
     * Parsing a JSONArray string
     * 
     * @param args 
     */
    public static void main(String[] args) {
        JSONArray myJson = new JSONArray("[123, {\"1\":{\"2\":{\"3\":{\"4\":[5, {\"6\":7}]}}}}]");
        
        // Print first value of the array
        System.out.print(myJson.get(0));
        
        // Print second value of the array
        System.out.print(myJson.get(1));
    }
}

或者, 如果你要将字符串转换为JSONObject:

package sandbox;

import org.json.*;

public class Sandbox {
    
    /**
     * Parsing a JSONObject string
     * 
     * @param args 
     */
    public static void main(String[] args) {
        JSONObject myJson = new JSONObject("{ \"number_list\": [ 1.9, 2.9, 3.4, 3.5 ], \"extra_data\": {}, \"name\": \"Carlos\", \"last_name\": \"Carlos\", \"bank_account_balance\": 20.2, \"age\": 21, \"is_developer\": true }");
        
        // Get some keys from the JSON Object
        System.out.print(myJson.get("name")); // Carlos
        System.out.print(myJson.get("age")); // 21
    }
}

编码愉快!

赞(0)
未经允许不得转载:srcmini » 如何在Java中轻松使用JSON

评论 抢沙发

评论前必须登录!