Как легко работать с JSON в Java

JSON — это легкий, независимый от языка формат обмена данными, который используется в настоящее время в каждом доступном веб-API. Если вы хотите манипулировать данными такого рода в среде Java, мы объясним вам, как легко добиться этого с помощью пакета org.json.

1. Включите пакет org.json

Java по умолчанию не предлагает никаких встроенных функций для анализа или создания JSON, в отличие от PHP или других языков, вместо этого вам нужно будет полагаться на стороннюю библиотеку / пакет. В этом уроке мы будем использовать org.json. Файлы в этом пакете реализуют кодеры / декодеры JSON на Java. Он также включает в себя возможность преобразования между JSON и XML, заголовками HTTP, файлами cookie и CDL. Это эталонная реализация. В Java существует большое количество пакетов JSON. Возможно, когда-нибудь сообщество Java будет стандартизировано на одном. До тех пор, мы рекомендуем вам используйте пакет org.json это делает вещи довольно легкими.

Вы также можете скачайте jar-файл пакета из репозитория maven и включить его вручную в свой проект или, если ваш проект основан на maven, вы можете отредактировать pom.xml файл и добавить зависимость:


org.json
json
20140107

Для получения дополнительной информации об этом пакете, пожалуйста, посетите официальный репозиторий в Maven здесь. После включения библиотеки вы сможете импортировать пакет с import org.json.*; в вашем коде.

2. Использование библиотеки для управления JSON

Как и каждый учебник в нашем мире кода, вы узнаете, делая и читая некоторые примеры. Мы поделимся с вами несколькими наиболее часто используемыми функциями при работе с JSON в Java:

А. Создание объектов JSON

Положенный метод JSONObject Класс позволяет определить новый ключ со значением для объекта:

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
}

Б. Создание массивов JSON

Положенный метод JSONArray класс позволяет вам вставить какое-то значение в массив:

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
}
}
Ссылка на основную публикацию
Adblock
detector