在 MonoTouch 中使用 Newtonsoft.Json
一直在项目中使用 Newtonsoft.Json 作为服务端的 Json 数据序列化工具, 现在使用 MonoTouch 做 iOS 开发, 自然会选择用 Newtonsoft.Json 来反序列化服务端返回的 Json 数据。
Newtonsoft.Json 没有提供对 MonoTouch 的版本, 因此需要从源代码编译 NJson 。
- 从 NJson 的 CodePlex 主页下载最新版本的源代码。
- 在源代码的 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;
- 在 Mac 系统下, 用 MonoDevelop 新建一个 MonoTouch 类库项目, 项目名称为 Newtonsoft.Json.MonoTouch, 然后关闭 MonoTouch ;
- 用文本编辑器打开 Newtonsoft.Json.MonoTouch.csproj 和 Newtonsoft.Json.Net35.csproj 两个文件, 将 Newtonsoft.Json.Net35.csproj 文件中所有的 <Compile Include="*.cs" /> 复制到 Newtonsoft.Json.MonoTouch.csproj 文件中对应的位置, 然后保存 Newtonsoft.Json.MonoTouch.csproj 文件。
- 再用 MonoDevelop 打开 Newtonsoft.Json.MonoTouch.csproj 项目, 打开项目属性对话框, 添加两个编译选项 WINDOWS_PHONE 和 SILVERLIGHT , 并将项目的输出文件改为 Newtonsoft.Json.MonoTouch ;
- 在项目中添加下列类型的定义文件, 因为这些 Newtonsoft.Json 引用到这些类型, 但是 MonoTouch 下没有这些类型:
- System.ComponentModel.AddingNewEventHandler
- System.ComponentModel.AddingNewEventArgs
- System.ComponentModel.PropertyChangingEventHandler
- System.ComponentModel.INotifyPropertyChanging
- System.ComponentModel.PropertyChangingEventArgs
- 如果不出什么意外的话, 现在可以在 MonoTouch 下编译出 Newtonsoft.Json 了。
经过测试, 这样编译出的 NJson 在 MonoTouch 保留了NJon 绝大部分功能, 可以正常的反序列化服务端的 JSON 数据。
张志敏所有文章遵循创作共用版权协议,要求署名、非商业 、保持一致。在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处。
本博客已经迁移到 GitHub , 围观地址: https://beginor.github.io/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架