К основному контенту

JSON JAVA

JSON JAVA

    Сегодня опишем как в Java работать с объектами JSON. Для начала надо подготовить окружение для работы JAVA c JSON.

Подготовка

       Перед тем как начать работать с JSON данными в JAVA, Вы должны загрузить библиотеку для работы с JSON. Загрузите библиотеку json-simple-1.1.1.jar и добавьте путь к файлу в окружение переменной CLASSPATH.

Сопоставление типов данных JSON и JAVA

   В таблице указаны соответствие типов данных формата JSON и обработки их в типы данных JAVA.
JSON
Java
string
java.lang.String
number
java.lang.Number
true|false
java.lang.Boolean
null
null
array
java.util.List
object
java.util.Map

    При декодировании типа данных isorg.json.simple.JSONArray, класс по умолчанию в JAVA является java.util.List , при декодировании java.util.Map, JSON по умолчанию использует isorg.json.simple.JSONObject.

Кодирование JSON в JAVA

      Ниже приводится простой пример, чтобы закодировать объект JSON с помощью Java JSONObject который является подклассом java.util.HashMap. Нет упорядочение не предусмотрено. Если вам необходимо строгое упорядочение элементов, используйте метод JSONValue.toJSONString (карта) с упорядоченной реализации карте, такие как java.util.LinkedHashMap.

import org.json.simple.JSONObject;
 
class JsonEncodeDemo {
 
   public static void main(String[] args){
      JSONObject obj = new JSONObject();
 
      obj.put("name", "foo");
      obj.put("num", new Integer(100));
      obj.put("balance", new Double(1000.21));
      obj.put("is_vip", new Boolean(true));
 
      System.out.print(obj);
   }
}
После компиляции и выполнения приведенной выше программы результат выполнения сгенерирует:
{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}
Ниже еще один пример, который показывает объект JSON потокового использованием Java JSONObject -
import org.json.simple.JSONObject;
 
class JsonEncodeDemo {
 
   public static void main(String[] args){
                    
      JSONObject obj = new JSONObject();
 
      obj.put("name","foo");
      obj.put("num",new Integer(100));
      obj.put("balance",new Double(1000.21));
      obj.put("is_vip",new Boolean(true));
 
      StringWriter out = new StringWriter();
      obj.writeJSONString(out);
      
      String jsonText = out.toString();
      System.out.print(jsonText);
   }
}
После компиляции и выполнения приведенной выше программы результат выполнения отобразит:
{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}

Преобращование JSON in Java

       В следующем примере используется JSONObject и JSONArray где JSONObject является java.util.Map и JSONArray является java.util.List, так что вы можете получить к ним доступ с помощью стандартных операций класса Map или List.
import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
import org.json.simple.parser.ParseException;
import org.json.simple.parser.JSONParser;
 
class JsonDecodeDemo {
 
   public static void main(String[] args){
                    
      JSONParser parser = new JSONParser();
      String s = "[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]";
                                         
      try{
         Object obj = parser.parse(s);
         JSONArray array = (JSONArray)obj;
                                                             
         System.out.println("The 2nd element of array");
         System.out.println(array.get(1));
         System.out.println();
 
         JSONObject obj2 = (JSONObject)array.get(1);
         System.out.println("Field \"1\"");
         System.out.println(obj2.get("1"));    
 
         s = "{}";
         obj = parser.parse(s);
         System.out.println(obj);
 
         s = "[5,]";
         obj = parser.parse(s);
         System.out.println(obj);
 
         s = "[5,,2]";
         obj = parser.parse(s);
         System.out.println(obj);
      }catch(ParseException pe){
                                         
         System.out.println("position: " + pe.getPosition());
         System.out.println(pe);
      }
   }
}
После компиляции и запуска приложения, программа отобразит следующий результат:
{"1":{"2":{"3":{"4":[5,{"6":7}]}}}}
 
Field "1"
{"2":{"3":{"4":[5,{"6":7}]}}}
{}
[5]
[5,2]


Комментарии

Популярные сообщения из этого блога

Команды Yum (Oracle linux,Cent os, RHEL)

Шпаргалка по работе с пакетным менеджером Yum (Yellowdog Updater, Modified), который используется в популярных Linux дистрибутивах: RedHat, CentOS, Scientific Linux (и других). В целях экономии места вывод команд не представлен. отображение команд и опций #yum help список названий пакетов из репозиторий #yum list список всех доступных пакетов #yum list available список всех установленных пакетов #yum list installed установлен ли указанный пакет #yum list installed httpd список установленных и доступных пакетов #yum list all список пакетов, относящихся к ядру #yum list kernel отображение информации о пакете #yum info httpd список зависимостей и необходимых пакетов #yum deplist httpd найти пакет, который содержит файл #yum provides "*bin/top" поиск пакета по имени и описанию #yum search httpd #yum search yum получить информацию о доступных обновлениях безопасности #yum updateinfo list security вывести список групп #yum gr...

Установка и конфигурирование Oracle Enterprise Manager 13c.

Этот пост поможет правильно установить и сконфигурировать Oracle Enterprise Manager 13c. Oracle Enterprise Manager - Это централизованный центр управления и мониторинга для всех продуктов Oracle. OEM способен управлять и мониторить и сторонние приложения и сообщать о всех критических проблемах основанные на установленных правилах установленные администратором. Первоначальные настройки системы Oracle Linux 6.7 64 Bit Virtual Machine VirtualBox 5.1.6 for Windows hosts Oracle Database 12.1.0.2 Oracle Enterprise Manager 13c Выделена оперативной памяти 12 Гб . На операционной системе Oracle Linux 6.7 64 Bit предустановлена база данных Oracle Database 12c установка которой тут не рассматривается. Предустановленные пакеты для корректной установки и настройки Oracle Management Service (OMS) make-3.81 binutils-2.20 gcc-4.4.4 libaio-0.3.107 glibc-common-2.12-1 libstdc++-4.4.4 libXtst-1.0.99 (x86_64) sysstat-9.0.4 glibc-2.12 glibc-devel-2.1...

Настройка портов доступа к Oracle Enterprise Manager Express 12c

Для чего данное руководство Данное руководство позволит Вам настроить Oracle Enterprise Manager Express 12c, с Веб интерфейсом, который поможет управлять и администрировать Ваш экземпляр базы данных Oracle. Введение Oracle Enterprise Manager Express позволяет выполнять административные задачи, такие как управление безопасностью пользователей и управление памятью и хранение базы данных. Вы можете также просмотреть производительность и статус информации о вашей базе данных. В Oracle Database 12c , было введено понятие Мультиарендность.( Мультиарендность (англ. multitenancy — «множественная аренда») — элемент архитектуры программного обеспечения, где единый экземпляр приложения, запущенного на сервере, обслуживает множество организаций-клиентов («арендаторов»). Мультиарендность сопоставляется с архитектурой из множественных экземпляров (англ. multiinstance), где для каждой организации-клиента создаются отдельные программные экземпляры. В мультиарендной архитектуре программные при...