日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java与iOS对话:Java对象与Apple plist序列化

發(fā)布時(shí)間:2023/12/3 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java与iOS对话:Java对象与Apple plist序列化 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我很高興地宣布我的第一個(gè)開源項(xiàng)目java-plist-serializer可以幫助您將Java(尤其是基于Spring的應(yīng)用程序)與iOS應(yīng)用程序集成。 ? 背景 我正在將Java Webapp作為后端并且客戶端是iOS設(shè)備的項(xiàng)目。 最近,我收到了創(chuàng)建Web服務(wù)的任務(wù),該服務(wù)返回plistiOS中使用的Property List數(shù)據(jù)格式)作為響應(yīng)。 為什么選擇plist而不選擇JSON或經(jīng)典XML? 如果您必須針對(duì)iOS <5.0進(jìn)行開發(fā),則沒(méi)有本機(jī)類可反序列化JSON。 核心iOS庫(kù)支持“屬性列表”格式,因此反序列化為NSDictionary超級(jí)高效。 很少有plist –與Java有關(guān)的庫(kù),但是每個(gè)庫(kù)都需要做大量的手工工作,并將Java對(duì)象逐步重寫為Apple NS *類的Java等效類。 我認(rèn)為沒(méi)有人喜歡這種任務(wù)。 那就是為什么我開發(fā)了一個(gè)庫(kù),用于以類似于XStream XML序列化的方式將Java對(duì)象序列化為Plist。 ?

java-plist-serializer

java-plist-serializer是托管在Github上的開源項(xiàng)目,有助于開發(fā)Java應(yīng)用程序和iOS應(yīng)用程序之間的通信。

  • 不依賴于任何與XML相關(guān)的庫(kù)
  • @PlistIgnore , @PlistAlias和命名策略可定制的輸出
  • 線程安全–可以在項(xiàng)目中用作單例
  • 可擴(kuò)展–可以輕松添加其他對(duì)象的處理程序
  • PlistView提供的Spring Framework集成

用法

庫(kù)的核心是PlistSerializerImpl 。 為了將對(duì)象序列化為plist,您必須創(chuàng)建PlistSerializerImpl的實(shí)例并調(diào)用序列化方法之一。 例如:

輸入類別:

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; }

創(chuàng)建這些類的對(duì)象,并plistSerializer.toXmlPlist方法

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變量將包含:

<?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框架集成

為了返回plist作為Spring MVC控制器的響應(yīng),您可以使用擴(kuò)展AbstractView的 PlistView 。

有幾種方法可以配置Spring MVC。 最容易理解的PlistView用法示例:

@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);} }

更詳細(xì)的文檔可以在項(xiàng)目的github頁(yè)面上找到

結(jié)論

隨意叉,延伸。 如果您發(fā)現(xiàn)任何問(wèn)題,請(qǐng)?jiān)趃ithub上報(bào)告。

參考: Java與iOS的對(duì)話:來(lái)自Java 伙伴JCG合作伙伴 Maciej Walkowiak(來(lái)自Software Development Journey博客)的Java對(duì)象與Apple plist序列化 。


翻譯自: https://www.javacodegeeks.com/2012/07/java-talking-to-ios-java-objects-to.html

總結(jié)

以上是生活随笔為你收集整理的Java与iOS对话:Java对象与Apple plist序列化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。