一、API介紹
Javajson轉數組是一個非常強大的API,它可以將JSON格式的字元串轉換成Java數組。它的主要作用是在Java項目中處理JSON數據,這在互聯網項目中使用得非常頻繁。
要使用Javajson轉數組,我們需要引入以下依賴項:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20200518</version>
</dependency>
引入依賴項後,我們就可以使用Javajson轉數組來解析JSON數據了。
二、Javajson轉數組的基本用法
我們可以將JSON字元串轉換成Javajson對象,然後從中提取我們需要的信息:
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class JavajsonExample {
public static void main(String[] args) {
String jsonStr = "{\"name\": \"Alice\", \"age\": 20}";
try {
JSONObject jsonObject = new JSONObject(jsonStr);
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
System.out.println("name: " + name + ", age: " + age);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
在上面的例子中,我們首先定義了一個JSON字元串,表示一個人的基本信息。然後我們將這個字元串轉換成一個JSONObject對象。我們可以使用getString方法和getInt方法來分別獲取「name」和「age」欄位的值,並列印輸出。
三、從JSON數組中獲取數據
JSON數組是由多個JSON對象組成的數據集合。我們可以使用Javajson轉數組來獲取JSON數組中的數據。下面是一個使用Javajson轉數組讀取JSON數組的例子:
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class JavajsonExample {
public static void main(String[] args) {
String jsonStr = "[{\"name\": \"Alice\", \"age\": 20}, {\"name\": \"Bob\", \"age\": 25}]";
try {
JSONArray jsonArray = new JSONArray(jsonStr);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
System.out.println("name: " + name + ", age: " + age);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
在上面的例子中,我們首先定義了一個JSON數組,表示兩個人的基本信息。然後我們使用Javajson轉數組將JSON字元串轉換成一個JSONArray對象。我們可以使用getJSONObject方法來獲取JSON數組中的每個JSON對象,然後獲取其欄位的值,並列印輸出。
四、將JSON字元串解析成Java列表
Javajson轉數組可以將JSON字元串解析成Java列表。我們可以將JSON數組或JSON對象轉換成Java列表或Java對象:
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class JavajsonExample {
public static void main(String[] args) {
String jsonStr = "[{\"name\": \"Alice\", \"age\": 20}, {\"name\": \"Bob\", \"age\": 25}]";
List<Person> list = new ArrayList<>();
try {
JSONArray jsonArray = new JSONArray(jsonStr);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
list.add(new Person(name, age));
}
} catch (JSONException e) {
e.printStackTrace();
}
System.out.println(list);
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
在上面的例子中,我們首先定義了一個JSON數組,表示兩個人的基本信息。然後我們使用Javajson轉數組將JSON字元串轉換成一個JSONArray對象。我們使用getJSONObject方法來獲取JSON數組中的每個JSON對象,並封裝在一個自定義的Person對象中。最後我們將這些Person對象放在一個Java列表中,列印輸出。
五、處理嵌套JSON數據
有時候,JSON數據中會有嵌套的JSON數據。我們可以使用Javajson轉數組來處理這種情況。下面是一個使用Javajson轉數組解析嵌套JSON數據的例子:
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class JavajsonExample {
public static void main(String[] args) {
String jsonStr = "{\"name\": \"Alice\", \"age\": 20, \"books\": [{\"title\": \"Java編程思想\", \"price\": 50.0}, {\"title\": \"編寫高質量代碼\", \"price\": 45.0}]}";
try {
JSONObject jsonObject = new JSONObject(jsonStr);
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
JSONArray jsonArray = jsonObject.getJSONArray("books");
List<Book> books = new ArrayList<>();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject bookObject = jsonArray.getJSONObject(i);
String title = bookObject.getString("title");
double price = bookObject.getDouble("price");
books.add(new Book(title, price));
}
Person person = new Person(name, age, books);
System.out.println(person);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
class Person {
private String name;
private int age;
private List<Book> books;
public Person(String name, int age, List<Book> books) {
this.name = name;
this.age = age;
this.books = books;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", books=" + books +
'}';
}
}
class Book {
private String title;
private double price;
public Book(String title, double price) {
this.title = title;
this.price = price;
}
@Override
public String toString() {
return "Book{" +
"title='" + title + '\'' +
", price=" + price +
'}';
}
}
在上面的例子中,我們首先定義了一個JSON字元串,其中有一個books欄位表示一個人的閱讀清單。然後我們使用Javajson轉數組將JSON字元串轉換成一個JSONObject對象。我們使用getString方法和getInt方法來分別獲取「name」和「age」欄位的值,並使用getJSONArray方法獲取「books」欄位的值。然後我們使用循環遍歷「books」欄位中的每個JSON對象並提取其欄位的值。最後我們使用封裝好的Person和Book對象來表示這些信息,列印輸出。
原創文章,作者:VORQQ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/333559.html