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]
Комментарии
Отправить комментарий