JSON – бул маалыматтарды тексттик көрсөткөн эң популярдуу форматтардын бири. Мисалы, JSON фронтенд менен бэкенд ортосунда, конфигурация файлдарында, оюндарда, тексттик редакторлордо жана башка көптөгөн тармактарда колдонулат. Программист болом десең, JSON менен сөзсүз жолугасың.
Синтаксис менен таанышуу
JSON'до жеткиликтүү маалымат түрлөрүн карап чыгалы:
Строкалар — кош тырмакчага алынган каалаган символдор:
"йцукен""125 + 42""G"Специальные символдор слэш менен эскертилет:
"first line\nsecond line""ОАО \"Рога\/копыта\""Сандар, анын ичинде терс жана чыныгы. Тырмакчасыз:
18 -333 17.88 1.2e6Логикалык түр — true / false (тырмакчасыз).
null — “эч нерсе” дегенди билдирет. Тырмакча керек эмес.
Массив — бул түр башка бардык түрлөрдүн маанилерин камтышы мүмкүн. Квадрат скобкалар менен курчалган, элементтер үтүр менен бөлүнөт:
["Java", "Rush", "JavaRush", "¯\_(ツ)_/¯"][true, true, false, true, false, false, false, false, false][[1, 2], [3, 999, 4, -5], [77]]Акыркы мисал — массивдердин массиви
Объект — бул татаал түр, бирок эң көп колдонулат. Ключ-маани жубу камтылган, анда маанилер жогоруда аталган бардык түрлөр жана башка объекттер болушу мүмкүн. Фигурдуу скобкалар менен курчалган, жубулар үтүр менен бөлүнөт:
{ "name": "Vova", "age": 7 }
Java-объектти JSON форматында көрсөтүү
Келгиле, кандайдыр бир Java-объектти алып, аны JSON форматында карап көрөлү.
Алгач класс жазабыз:
public class Human {
String name;
boolean male;
int age;
Set<Human> parents;
public Human(String name, boolean male, int age) {
this.name = name;
this.male = male;
this.age = age;
}
}
Андан соң биздин объектти түзөбүз:
Human father = new Human("Петр", true, 31);
Human mather = new Human("Мария", false, 28);
mather.parents = new HashSet<>();
Human son = new Human("Павел", true, 7);
son.parents = Set.of(father, mather);
Эми son объектин JSON форматында так көрсөтүүгө аракет кылайлы:
"name" : "Павел",
"male" : true,
"age" : 7,
"parents" : [
{
"name" : "Петр",
"male" : true,
"age" : 31,
"parents" : null
},
{
"name" : "Мария",
"male" : false,
"age" : 28,
"parents" : null
}
]
}
JSON'догу комментарий
Бул жерде баары Javaдагыдай: эки түрү бар комментарийлер: // жана /*...*/ . Алардын айырмасын эскертип кереги жок деп ойлоймун?
GO TO FULL VERSION