在 MonoTouch 中使用 Newtonsoft.Json

简介:

一直在项目中使用 Newtonsoft.Json 作为服务端的 Json 数据序列化工具, 现在使用 MonoTouch 做 iOS 开发, 自然会选择用 Newtonsoft.Json 来反序列化服务端返回的 Json 数据。

Newtonsoft.Json 没有提供对 MonoTouch 的版本, 因此需要从源代码编译 NJson 。

  1. 从 NJson 的 CodePlex 主页下载最新版本的源代码。
  2. 在源代码的 Src\NewtonSoft.Json 目录下, 有这样的几个项目文件:
    • Newtonsoft.Json.Net20.csproj 对应 .Net 2.0 平台下的 NJson ;
    • Newtonsoft.Json.Net35.csproj 对应 .Net 3.5 平台下的 NJson ;
    • Newtonsoft.Json.Silverlight.csproj 对应 Silverlight 平台下的 NJson ;
    • Newtonsoft.Json.csproj 对应 .Net 4.0 平台下的 NJson ;
    • Newtonsoft.Json.WindowsPhone.csproj 对应 WP7 平台下的 NJson;
  3. 在 Mac 系统下, 用 MonoDevelop 新建一个 MonoTouch 类库项目, 项目名称为 Newtonsoft.Json.MonoTouch, 然后关闭 MonoTouch ;
  4. 用文本编辑器打开 Newtonsoft.Json.MonoTouch.csproj 和 Newtonsoft.Json.Net35.csproj 两个文件, 将 Newtonsoft.Json.Net35.csproj 文件中所有的 <Compile Include="*.cs" /> 复制到 Newtonsoft.Json.MonoTouch.csproj  文件中对应的位置, 然后保存 Newtonsoft.Json.MonoTouch.csproj 文件。
  5. 再用 MonoDevelop 打开 Newtonsoft.Json.MonoTouch.csproj 项目, 打开项目属性对话框, 添加两个编译选项 WINDOWS_PHONE 和 SILVERLIGHT ,  并将项目的输出文件改为 Newtonsoft.Json.MonoTouch ;
  6. 在项目中添加下列类型的定义文件, 因为这些 Newtonsoft.Json 引用到这些类型, 但是 MonoTouch 下没有这些类型:
    • System.ComponentModel.AddingNewEventHandler
    • System.ComponentModel.AddingNewEventArgs
    • System.ComponentModel.PropertyChangingEventHandler
    • System.ComponentModel.INotifyPropertyChanging
    • System.ComponentModel.PropertyChangingEventArgs
    这些类型通过查阅 MSDN 或者用 ILSpy 很容易确定它们是怎么定义的;
  7. 如果不出什么意外的话, 现在可以在 MonoTouch 下编译出 Newtonsoft.Json 了。

经过测试, 这样编译出的 NJson 在 MonoTouch 保留了NJon 绝大部分功能, 可以正常的反序列化服务端的 JSON 数据。

张志敏所有文章遵循创作共用版权协议,要求署名、非商业 、保持一致。在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处。

本博客已经迁移到 GitHub , 围观地址: http://beginor.github.io/

本文转自张志敏博客园博客,原文链接:http://www.cnblogs.com/beginor/archive/2011/09/25/2190545.html ,如需转载请自行联系原作者
相关文章
|
7月前
|
JSON 开发框架 API
【推荐100个unity插件之20】一个强大的JSON处理库——Newtonsoft.Json(也称为Json.NET)
【推荐100个unity插件之20】一个强大的JSON处理库——Newtonsoft.Json(也称为Json.NET)
581 0
|
8月前
|
JSON 数据格式
Qt Json 处理
Qt Json 处理
56 0
|
JSON 数据格式
ics-to-json
ics-to-json
67 0
Newtonsoft.Json日常用法
原文链接:https://www.cnblogs.com/ZengJiaLin/p/9578794.html
1707 0
|
Web App开发 JSON 数据格式
Newtonsoft.Json 版本冲突时解决方案
如果同一项目中不同第三方类库分别使用了不同版本的Newtonsoft.Json的情况下,可以在主项目配置文件中添加以下节点,将0.0.0.0-11.0.0.0此区间的Newtonsoft.Json使用全部强制指向到9.0.0.0版本。
1588 0

热门文章

最新文章