如何在Java中轻松使用JSON

本文概述

  • 1.包含org.json包
  • 2.使用该库操作JSON
JSON是一种轻量级的, 独立于语言的数据交换格式, 如今在每个可用的Web API上都在使用。如果你愿意在Java环境中处理此类数据, 我们将向你说明如何使用org.json包轻松实现。
1.包含org.json包【如何在Java中轻松使用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 stringsmyObject.put("name", "Carlos"); myObject.put("last_name", "Carlos"); // Primitive valuesmyObject.put("age", new Integer(21)); myObject.put("bank_account_balance", new Double(20.2)); myObject.put("is_developer", new Boolean(true)); // Key with arraydouble[] myList = {1.9, 2.9, 3.4, 3.5}; myObject.put("number_list", myList); // Object inside objectJSONObject subdata = http://www.srcmini.com/new JSONObject(); myObject.put("extra_data", subdata); // Generate JSON StringSystem.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 arraymyArray.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 StringSystem.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 arraySystem.out.print(myJson.get(0)); // Print second value of the arraySystem.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 ObjectSystem.out.print(myJson.get("name")); // CarlosSystem.out.print(myJson.get("age")); // 21}}

编码愉快!

    推荐阅读