JSON (JavaScript Object Notation) - текстовый формат обмена данными, легко читаемый людьми и основанный на синтаксисе Javascript. JSON, как правило, используется с Javascript, если быть более точным - при обмене данными между Javascript и сервером. Стоит отметить, что JSON обладает существенным преимуществом перед XML - он менее избыточен.
Пример JSON объекта:
Как видно, все предельно просто. Фактически, JSON объект является валидным Javascript кодом, то есть может быть исполнен интерпретатором Javascript. Но как сгенерировать JSON на сервере, и как распарсить пришедший от клиента JSON?
PHP программисты сейчас довольно ухмыльнутся, ведь у них есть стандартные функции json_encode и json_decode, позволяющие легко и просто гонять PHP сущности в JSON и обратно.
Java программистам приходится сложнее - надо поддерживать свою крутость (где PHP - Personal HomePage language, и где крутая Enterprise Java), поэтому с JSON приходится работать путем сторонних библиотек, коих на офсайте json.org приводится немало. Программисты Python здесь тоже ухмыльнутся - их дзен "Должен быть только один, и лучше всего очевидный, способ сделать это".
Итак, в данной статье рассматривается использование отличной java библиотеки для генерирования и парсинга JSON - json-simple, официальный сайт на google code. Кстати, там можно найти немало отличных примеров!
Вот таблица сопоставления типов JSON и Java:
Тааак, и как нам всем этим добром пользоваться?
Cоздадим JSON строку!
Ну ладно, круто. А что-то посложнее?
Думаю, комментарии здесь излишни, все действительно чрезвычайно интуитивно и просто. Другие примеры генерирования JSON можно посмотреть на офсайте.
А вот с парсингом дела обстоят намного хуже. Шутка:)
Вот такая отличная библиотека. Приятной работы!
Пример JSON объекта:
{
userId: 32,
firstName: "Алексей",
lastName: "Голобурдин",
address: {
country: "Россия",
city: "Москва"
},
phone: "8 (905) 777 77 77"
}
Как видно, все предельно просто. Фактически, JSON объект является валидным Javascript кодом, то есть может быть исполнен интерпретатором Javascript. Но как сгенерировать JSON на сервере, и как распарсить пришедший от клиента JSON?
PHP программисты сейчас довольно ухмыльнутся, ведь у них есть стандартные функции json_encode и json_decode, позволяющие легко и просто гонять PHP сущности в JSON и обратно.
Java программистам приходится сложнее - надо поддерживать свою крутость (где PHP - Personal HomePage language, и где крутая Enterprise Java), поэтому с JSON приходится работать путем сторонних библиотек, коих на офсайте json.org приводится немало. Программисты Python здесь тоже ухмыльнутся - их дзен "Должен быть только один, и лучше всего очевидный, способ сделать это".
Итак, в данной статье рассматривается использование отличной java библиотеки для генерирования и парсинга JSON - json-simple, официальный сайт на google code. Кстати, там можно найти немало отличных примеров!
Вот таблица сопоставления типов JSON и Java:
JSON | Java |
string | java.lang.String |
number | java.lang.Number |
true | false | java.lang.Number |
null | null |
array | java.util.List |
object | java.util.Map |
Тааак, и как нам всем этим добром пользоваться?
Примеры давай, примеры!
Cоздадим JSON строку!
//import org.json.simple.JSONObject;
JSONObject resultJson = new JSONObject();
resultJson.put("name","foo");
resultJson.put("num",new Integer(100));
resultJson.put("is_vip",new Boolean(true));
resultJson.put("nickname",null);
System.out.print(obj.toString());
// {"name": "foo", "num": 100, "is_vip": true, "nickname: null}
Ну ладно, круто. А что-то посложнее?
JSONArray ar = new JSONArray();
JSONObject obj = new JSONObject();
JSONObject resultJson = new JSONObject();
ar.add("first");
ar.add(new Integer(100));
obj.put("one", "two");
obj.put("three", "four");
resultJson.put("paramsArray", ar);
resultJson.put("paramsObj", obj);
resultJson.put("paramsStr", "some string");
System.out.print(obj.toString());
// {"paramsArray": ["first", 100],
// "paramsObj": {"one": "two", "three": "four"},
// "paramsStr": "some string"}
Думаю, комментарии здесь излишни, все действительно чрезвычайно интуитивно и просто. Другие примеры генерирования JSON можно посмотреть на офсайте.
Парсинг JSON
А вот с парсингом дела обстоят намного хуже. Шутка:)
String json = "{paramsArray: [\"first\", 100],"
+ "paramsObj: {one: \"two\", three: \"four\"},"
+ "paramsStr: \"some string\"}";
JSONParser parser = new JSONParser();
Object obj = parser.parse(json);
JSONObject jsonObj = (JSONObject) obj;
System.out.println(jsonObj.get("paramsStr"));
// some string
JsonObject jo = jsonObj.get("paramsObj");
System.out.println(jo.get("three"));
// four
JsonArray ja = jsonObj.get("paramsArray");
System.out.println(ja.get(1));
// 100
Вот такая отличная библиотека. Приятной работы!