Java-PLIST-сериализатору
java-plist-serializer — это проект с открытым исходным кодом, размещенный на Github, который помогает развивать связь между Java-приложением и iOS-приложением.
- не зависит от какой-либо библиотеки, связанной с XML
- настраиваемый вывод благодаря стратегиям @PlistIgnore , @PlistAlias и Naming
- Потокобезопасный — может использоваться как синглтон в проекте
- расширяемый — можно легко добавлять обработчики для дополнительных объектов
- Интеграция Spring Framework, предоставляемая PlistView
использование
Сердцем библиотеки является PlistSerializerImpl . Чтобы сериализовать объекты в plist, вы должны создать экземпляр PlistSerializerImpl и вызвать один из методов сериализации. Например:
Входные классы:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
public class Post { private String title; private Integer views = 0 ; private List<Comment> comments = new ArrayList<Comment>(); private Author author; public Post(Author author, String title, Integer views) { this .title = title; this .views = views; this .author = author; } } public class Comment { private String content; private String author; public Comment(String author, String content) { this .content = content; this .author = author; } } public class Author { private String name; } |
Объекты этих классов создаются и plistSerializer.toXmlPlist
метод plistSerializer.toXmlPlist
1
2
3
4
5
6
|
Post post = new Post( new Author( "jason bourne" ), "java-plist-serializer introduction" , 9 ); post.addComment( new Comment( "maciejwalkowiak" , "first comment" )); post.addComment( new Comment( "john doe" , "second comment" )); PlistSerializerImpl plistSerializer = new PlistSerializerImpl(); String xml = plistSerializer.toXmlPlist(post); |
Переменная xml
будет содержать:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<? xml version = "1.0" encoding = "UTF-8" ?><! DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> < plist version = "1.0" > < dict > < key >author</ key > < dict > < key >name</ key > < string >jason bourne</ string > </ dict > < key >comments</ key > < array > < dict > < key >author</ key > < string >maciejwalkowiak</ string > < key >content</ key > < string >first comment</ string > </ dict > < dict > < key >author</ key > < string >john doe</ string > < key >content</ key > < string >second comment</ string > </ dict > </ array > < key >title</ key > < string >java-plist-serializer introduction</ string > < key >views</ key > < integer >9</ integer > </ dict > </ plist > |
Интеграция Spring Framework
Чтобы вернуть plist в качестве ответа контроллера Spring MVC, вы можете использовать PlistView, который расширяет AbstractView .
Существует несколько способов настройки Spring MVC. Самый простой для понимания пример использования PlistView:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
@Controller public class BlogController { @RequestMapping (value = "/loadBlogPost" , method = RequestMethod.GET) public ModelAndView loadBlogPost() { Post post = new Post( new Author( "jason bourne" ), "java-plist-serializer introduction" , 9 ); post.addComment( new Comment( "maciejwalkowiak" , "first comment" )); post.addComment( new Comment( "john doe" , "second comment" )); ModelMap model = new ModelMap(); model.addAttribute( "RESULT" , notification); return new ModelAndView( new PlistView(), model); } } |
Более подробную документацию можно найти на странице проекта github.
Вывод
Не стесняйтесь раскошелиться, вытянуть. Если вы обнаружите какие-либо проблемы, пожалуйста, сообщите о них на github.
Ссылка: Java говорит с iOS: Java-объекты для сериализации Apple plist от нашего партнера JCG Мачея Уоковяка в блоге « Путь к разработке программного обеспечения» .