Содержание
Как десериализовать вложенный JSON в плоскую, похожую на карту структуру?
Пару дней назад у меня возник вопрос о том, как сгладить объект JSON, который может быть простым по сложности по структуре?
JsonFlattener
это очень мощная утилита Maven точно для того же. Давайте посмотрим на пример.
Вам нужно импортировать ниже Maven Dependency к вашему проекту. Добавьте ниже в файл вашего проекта pom.xml .
1
2
3
4
5
|
< зависимость >
< groupId > ком . Github . wnameless < / groupId >
< artifactId > json — flattener < / artifactId >
< версия > 0.2.2 < / версия >
< / зависимость >
|
Если ты не видишь pom.xml
файл в рабочую область Eclipse, так как у вас нет проекта maven, тогда вы можете просто скрыть свой проект maven проекта .
На
side note
: Приятно видеть статью Crunchify на странице результатов поиска Google
Давайте начнем
Шаг 1
- Создать класс Java
CrunchifyJSONFlattenerTutorial
.Джава - Надеюсь, вы добавили выше
json-flattener
зависимость от вашегоpom.xml
файл
Шаг 2
Создать файл crunchify.txt
и положить его под ~/Document
папка, если вы находитесь на Macbook . Измените путь в соответствии с вашими потребностями.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
{
«Имя» : crunchify.com ,
«Автор» : App Shah ,
«Адрес» : Нью-Йорк ,
Услуги компании : [ {
«Сервис» : «Обзор SEO сайта» ,
«Ссылка» : https://pro.crunchify.com/#seo
} , {
«Сервис» : «Полный сервис дизайна сайта» ,
«Ссылка» : https://pro.crunchify.com/#full-design
} , {
«Сервис» : «Оптимизация и консультация WordPress» ,
«Ссылка» : https://pro.crunchify.com/#consultant
} ]
}
|
Мы будем читать файл crunchify.txt JSON в Java .
Шаг 3
Скопируйте код Java в ваш Eclipse:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
пакет crunchify. ком . учебные пособия ;
Импортировать Java. Ио. FileReader ;
Импортировать Java. Util. Карта ;
Импортировать орг. JSON . простой. JSONObject ;
Импортировать орг. JSON . простой. синтаксический анализатор. JSONParser ;
Импортировать ком . Github . безымянный . JSON . уплощения. JsonFlattener ;
Импортировать ком . Github . безымянный . JSON . unflattener. JsonUnflattener ;
/ **
* @author Crunchify.com
*
* /
общественности учебный класс CrunchifyJSONFlattenerTutorial {
общественности статический недействительным main ( Строка [ ] аргументы ) {
Парсер JSONParser знак равно новый JSONParser ( ) ;
пытаться {
// Поместить содержимое JSON выше в файл crunchify.txt и изменить путь к нему
объект OBJ знак равно синтаксический анализатор. разбор ( новый FileReader ( /Users/appshah/Documents/crunchify.txt ) ) ;
JSONObject jsonObject знак равно ( JSONObject ) объект ;
// JsonFlattener: утилита Java, используемая для FLATTEN вложенных объектов JSON
строка flattenedJson знак равно JsonFlattener . сплющить (JSONObject ToString ().);
log ( / n ===== Simple Flatten ===== / n + flatlinedJson ) ;
Карта < Строка , Объект > flattenedJsonMap знак равно JsonFlattener . flattenAsMap ( jsonObject . toString ( ) ) ;
log ( / n ===== Свести как карту ===== / n + flatlinedJson ) ;
// Мы используем цикл Java8 forEach. Больше информации: http://crunchify.me/1VIwm0l
flatlinedJsonMap . forEach ( ( k , v ) — > журнал ( к + : + v ) ) ;
// Разблокируем его обратно в исходный JSON
строка nestedJson знак равно JsonUnflattener . unflatten (flattenedJson);
Система. вне. println ( / n ===== Развернуть его обратно в исходный JSON ===== / n + nestedJson ) ;
} ловить ( Исключение е ) {
эл . printStackTrace ( ) ;
}
}
частный статический недействительным log ( Строка flatлетJson ) {
Система. вне. println ( flatlinedJson ) ;
}
}
|
И это все. Просто запустите программу, и вы увидите Flatten
а также Unflatten
формат вашего JSONObject.
Выход Eclipse Console:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
===== Simple Flatten =====
{ Адрес : Нью-Йорк , Автор : App Shah , Услуги компании [0]. Сервис : Обзор сайта SEO , Услуги компании [0]. Ссылка : https: // //crunchify.com//services//site-seo-review-service// , Услуги компании [1] .Service : Полное обслуживание дизайна сайта , Услуги компании [1] .Link : https : ////crunchify.com//services//full-website-design-service// , Услуги компании [2] .Service : Оптимизация и консультации WordPress , Услуги компании [2] .Link : https:////crunchify.com//services//wordpress-optimization-service// , Name : crunchify.com }
===== Сгладить как Карта =====
{ Адрес : Нью-Йорк , Автор : App Shah , Услуги компании [0]. Сервис : Обзор сайта SEO , Услуги компании [0]. Ссылка : https: // //crunchify.com//services//site-seo-review-service// , Услуги компании [1] .Service : Полное обслуживание дизайна сайта , Услуги компании [1] .Link : https : ////crunchify.com//services//full-website-design-service// , Услуги компании [2] .Service : Оптимизация и консультации WordPress , Услуги компании [2] .Link : https:////crunchify.com//services//wordpress-optimization-service// , Name : crunchify.com }
Адрес : новый Йорк
автор : App Shah
Услуги компании [ 0 ] . обслуживание : Обзор SEO сайта
Услуги компании [ 0 ] . Ссылка на сайт : https : //pro.crunchify.com/#seo
Услуги компании [ 1 ] . обслуживание : Полный дизайн сайта Услуги
Услуги компании [ 1 ] . Ссылка на сайт : https : //pro.crunchify.com/#full-design
Услуги компании [ 2 ] . обслуживание : Оптимизация WordPress & Консультация
Услуги компании [ 2 ] . Ссылка на сайт : https : //pro.crunchify.com/#consultant
название : crunchify. ком
===== Unflatten его обратно оригинал JSON =====
{ Адрес : Нью-Йорк , Автор : App Shah , Услуги компании : [ { Сервис : Обзор SEO сайта , Ссылка : https://pro.crunchify.com / # seo } , { Сервис : Полный сервис дизайна веб-сайтов , Ссылка : https://pro.crunchify.com/#full-design } , { Сервис : Оптимизация и консультации WordPress , Ссылка : https://pro.crunchify.com/#consultant } ] , Имя : crunchify.com }
|
0.00 (0%) 0 votes