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
|
@Controllerpublic 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 Мачея Уоковяка в блоге « Путь к разработке программного обеспечения» .