本文概述
- 1.包含org.json包
- 2.使用该库操作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}}
编码愉快!
推荐阅读
- 如何在Java中打印三角形矩形图案(从左到右和从右到左)
- Java技术指南「并发原理专题」AQS的技术体系之CLHMCS锁的原理及实现
- Java技术探索「开发实战专题」Lombok插件开发实践必知必会操作!
- Java ASM系列((056)opcode: method)
- 作为有经验的程序员如果不懂Lambda表达式就说不过去了吧,建议收藏!!!
- Java技术指南[Guava Collections]实战使用相关Guava不一般的集合框
- 面试java开发被问最多的“cookiesessiontoken”问题,安排!
- python通过Matplotlib绘制常见的几种图形
- java操作sql server数据库