ios plist 国际化_Java与iOS对话:Java对象与Apple plist序列化

ios plist 国际化

我很高兴地宣布我的第一个开源项目java-plist-serializer可以帮助您将Java(尤其是基于Spring的应用程序)与iOS应用程序集成在一起。  
背景
我正在将Java webapp作为后端并且客户端是iOS设备的项目。 最近,我收到了创建Web服务的任务,该服务返回plistiOS中使用的Property List数据格式)作为响应。 为什么选择plist而不选择JSON或经典XML? 如果您必须针对iOS <5.0进行开发,则没有本机类可反序列化JSON。 核心iOS库支持“属性列表”格式,因此反序列化为NSDictionary非常快速,高效。
很少有plist –与Java有关的库,但是每个库都需要做大量的手工工作,并将Java对象逐步重写为Apple NS *类的Java等效类。 我认为没有人喜欢这种任务。 那就是为什么我开发了一个库,用于以类似于XStream XML序列化的方式将Java对象序列化为Plist。  

java-plist-serializer

java-plist-serializer是托管在Github上的开源项目,有助于开发Java应用程序和iOS应用程序之间的通信。

  • 不依赖于任何与XML相关的库
  • @PlistIgnore , @PlistAlias和命名策略可定制的输出
  • 线程安全–可以在项目中用作单例
  • 可扩展–可以轻松添加其他对象的处理程序
  • PlistView提供的Spring Framework集成

用法

库的核心是PlistSerializerImpl 。 为了将对象序列化为plist,您必须创建PlistSerializerImpl的实例并调用序列化方法之一。 例如:

输入类别:

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方法

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控制器的响应,您可以使用扩展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);}
}

更详细的文档可以在项目的github页面上找到

结论

随意叉,延伸。 如果您发现任何问题,请在github上报告。

参考: Java与iOS的对话:来自Java 伙伴JCG合作伙伴 Maciej Walkowiak在Apple上向Apple plist序列化Java对象 ,该博客来自Software Development Journey博客。


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

ios plist 国际化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vtk环境搭建(windowsXP/win7,vtk6.0.0+cmake2.8+vs2010)

1. 安装vs2010&#xff08;默认方式&#xff09; 2. 安装cmake2.8&#xff08;默认方式&#xff09; 3. 新建文件夹作为vtk文件根目录&#xff08;例如"E:\vtk6.0"&#xff09;&#xff0c;解压vtk-6.0.0.zip到根目录&#xff0c;将VTK6.0.0改名为vtk&#xff1b;解…

P1993 小K的农场 (差分约束)

题目描述 小K在MC里面建立很多很多的农场&#xff0c;总共n个&#xff0c;以至于他自己都忘记了每个农场中种植作物的具体数量了&#xff0c;他只记得一些含糊的信息&#xff08;共m个&#xff09;&#xff0c;以下列三种形式描述&#xff1a; 农场a比农场b至少多种植了c个单位…

将Quartz与Spring集成

在Java应用程序中调度作业时&#xff0c;Quartz是第一个考虑的工具。 Quartz是由最流行的RDBMS支持的作业调度程序。 这真的很方便&#xff0c;并且很容易与spring集成。 为了创建石英模式&#xff0c;您必须下载石英发行版并解压缩位于crystal-2.2.3 / docs / dbTables /中的…

linux下md5sum的使用

在linux或Unix上&#xff0c;md5sum是用来计算和校验文件报文摘要的工具程序。一般来说&#xff0c;安装了Linux后&#xff0c;就会有md5sum这个工具&#xff0c;直接在命令行终端直接运行。1、使用md5sum来产生指纹&#xff08;报文摘要&#xff09;命令如下&#xff1a;md5su…

深入理解Python中的元类(metaclass)

注&#xff1a;本文原稿来自stackoverflow&#xff0c;原文链接&#xff0c;目前已收获5k高赞。 一、类也是对象 在理解元类之前&#xff0c;你需要先掌握Python中的类。Python中类的概念借鉴于Smalltalk&#xff0c;这显得有些奇特。在大多数编程语言中&#xff0c;类就是一组…

6个步骤卸载wine

今天在ubuntu下装了个wine&#xff0c;感觉界面很难看&#xff0c;跟ubuntu风格不协调。所以我把它卸载了。 根据网上找的资料&#xff0c;我是按如下步骤卸载&#xff1a; 1.终端运行sudo apt-get remove wine&#xff0c;运行发现系统还有wine的图标残留&#xff0c;于是 2…

OpenStack基础知识-virtualenv工具详解

1、virtualenv介绍 virtualenv通过创建一个单独的虚拟化python运行环境&#xff0c;将我们所需的依赖安装进去&#xff0c;不同项目之间相互不干扰&#xff0c;从而解决不同的项目之间依赖不同&#xff0c;造成的冲突问题 2、安装virtualenv 通过pip命令&#xff0c;安装virtua…

java中的五种排序方法_用Java排序的五种有用方法

java中的五种排序方法Java排序快速概述&#xff1a; 正常的列表&#xff1a; private static List VEGETABLES Arrays.asList("apple", "cocumbers", "blackberry");Collections.sort(VEGETABLES);output: apple, blackberry, cocumbers反向排…

压缩vmware中的ubuntu系统(虚拟机瘦身大法)

压缩vmware中的ubuntu系统&#xff08;虚拟机瘦身大法&#xff09; 前提:你的虚拟机大小 < 你放置虚拟机的磁盘的剩余空间 1.在Termial(终端)里 运行"sudo vmware-toolbox"(需要root权限) 2.选择“shrink”选项卡 3.选中“/”&#xff0c;点击“shrink”按钮 4.完…

P2619 [国家集训队2]Tree I

P2619 [国家集训队2]Tree I 链接 分析&#xff1a; 为了确定白边选入的数量&#xff0c;所以给白边加一个权值&#xff0c;二分这个值&#xff0c;然后最小生成树。可以发现白边的数量虽这个值的增大而减小&#xff0c;满足单调性。 有一个问题&#xff1a;如果在二分过程中给白…

程序化JCMD访问

在线提出的问题表明&#xff0c;开发人员偶尔希望通过其Java应用程序访问通常从针对该应用程序外部运行JConsole &#xff0c; VisualVM或JDK命令行工具获得的信息类型。 以下是这类问题的一些示例&#xff1a; 如何以编程方式获取jmap直方图&#xff1f; 以编程方式从Java应…

Ubuntu瘦身与扩容运动

Ubuntu瘦身与扩容运动 2009-11-26 18:18:24| 分类&#xff1a; 计算机 | 标签&#xff1a; |字号大中小 订阅 Ubuntu瘦身与扩容运动 2009年08月14日 星期五 12:25大家都知道系统用久了就会慢慢变得臃肿,速度当然也就会有一些影响,所以当那些加速系统的方法不在奏效的时候…

认识jQuery

一、JavaScript库 把一些浏览器兼容性的代码或者需要常用的函数装在一个js文件里,封装了很多js代码的一个js文件就是一个库 二、jQuery 是一个JavaScript库&#xff0c;免费开源的&#xff0c;体积小&#xff0c;链式编程&#xff0c;隐式迭代&#xff0c;很多优点jQuery 的功能…

Axis2 WebService(配置、发布、调用)

from:http://www.lifeba.org/arch/java_axis2_webservice.html 准备工作 1、下载&#xff1a;axis2-1.5.4-bin.zip,axis2-1.5.4-war.zip 下载地址&#xff1a;http://axis.apache.org/axis2/java/core/ 2、环境变量设置 AXIS2_HOME E:\research\axis2-1.5.4-bin\axis2-1.5.4 J…

SmartPDA图片

转载于:https://www.cnblogs.com/xyyshishuaige/p/9098613.html

基于国家标准的 EndNote 输出样式模板

发表于 2013-05-26作者 Haoxian Zeng浏览 983 次from:http://cnzhx.net/blog/endnote-output-style-cnzhx/1EndNote 相当于一个数据库&#xff0c;将添加/导入的文献存档。需要引用文献的时候就从中选择一个插入到文档中&#xff0c;EndNote 会自动给你编号、在文档末尾建立相应…

工厂设计模式解决什么问题_使用工厂模式解决设计问题

工厂设计模式解决什么问题工厂设计模式是面向对象环境中最常用的模式之一。 再次来自“创意设计”模式类别&#xff0c;即有关对象创建的所有信息。 在某些情况下&#xff0c;对象的创建很复杂&#xff0c;可能需要某种程度的抽象&#xff0c;以便客户端代码不了解这些复杂性和…

shiro 认证思路

转载于:https://www.cnblogs.com/hwgok/p/9101232.html

Java 9对可选的补充

哇&#xff0c;人们对Java 9的Stream API增添了 真正的兴趣。 想要更多&#xff1f; 让我们看一下…… 可选的 可选::流 这不需要任何解释&#xff1a; Stream<T> stream();想到的第一个词是&#xff1a; 终于 &#xff01; 最后&#xff0c;我们可以轻松地从可选值流…

Matlab功率谱估计

(2012-03-16 12:22:15) 随机信号处理 * 随机变量分布特征量 均值mean 协方差矩阵cov 相关系数矩阵corrcoef [R, P] corrcoef(X)&#xff0c;P值用于检验相关性&#xff0c;越小越相关&#xff0c;0.05以下为显著相关。 * 相关函数估计 相关函数估计xcorr [c,lags] xcorr(…