JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。(以上引自http://www.json.org/对JSON的介绍)

在美国的TechED 2008大会上,Andy Wigley讲了一节关于.NET Compact Framework访问RESTful Web Data Service的session,里面就提到了用JSON来序列化数据。以下是session的介绍:

Accessing RESTful Web Data Services in the Microsoft .NET Compact Framework: The Lightweight Alternative to SOAP
Most Microsoft developers are used to working with SOAP-based Web services and these RPC-like services have been used successfully in many mobile applications that need to access services hosted on remote servers. However, now there's a new kid on the block for remote data access that - its proponents claim - is lightweight, flexible, and works in the way the architects of the Web intended, using many of the built-in features of HTTP. REST stands for Representational State Transfer and is gathering supporters throughout the Web for its flexibility and the ease with which you can perform CRUD (Create, Read, Update, Delete) operations on remote data. Indeed, REST is used for exposing data in new Microsoft products such as ADO.NET Data Services and SQL Server Data Services. In this session, we compare the strengths and weaknesses of REST and SOAP, take a look at how to serialize data using JSON, and work through some demos to show how to program .NET Compact Framework applications that use REST to access services built with ADO.NET Data Services and those exposed by Web 2.0 APIs such as Facebook.

关于JSON数据格式的序列化,.NET Framework已经有了Json.NET (http://www.codeplex.com/Json),.NET Compact Framework也有了JsonCF (http://www.codeplex.com/JsonCF)。从JsonCF的作者Karl Seguin了解到,目前JsonCF还处于早期的版本,并没有经过充分的测试,所以用的时候需要注意一下。

示例代码:

string json = CodeBetter.Json.Converter.Serialize(new User("name", "password", AccountStatus.Enabled));
CodeBetter.Json.Converter.Serialize("out.txt", new int[] { 1, 2, 3, -4 }, "_");

User user = CodeBetter.Json.Converter.Deserialize<User>(json, "_");
int[] values = CodeBetter.Json.Converter.DeserializeFromFile<int[]>("out.txt", "_");

由于JSON格式比SOAP简洁多了,在服务端和手机端之间传输用JSON序列化的数据,可以有效减少数据传输量,并提升传输速度。

转载于:https://www.cnblogs.com/bobli/archive/2008/12/24/1360961.html

Json for the .NET Compact Framework相关推荐

  1. .NET Compact Framework下SQL CE的使用

    在Wince和Windows Mobile下最常用的数据库为SQL CE,SQL CE也曾经叫做SQL Server for Windows CE和SQL Server Mobile Edition, ...

  2. [欢迎加入]博客园.NET Compact Framework讨论组

    欢迎加入.NET Compact Framework讨论组,这里是面向Microsoft .NET Compact Framework的各类开发者(包括Pocket PC,Smartphone和Win ...

  3. .NET Framework/.NET Compact Framework/.NET Micro Framework功能集比较

    该资料来源于三亚许云老师的 .NET Micro Framework的讲座,图片中红色部分表示支持的功能,绿色部分表示不支持,不过该图片我看了应该不是最新的,如.NET Compact Framewo ...

  4. .NET Compact Framework下的蓝牙开发

    蓝牙的应用十分广泛,基于Bluetooth的通信程序开发主要有以下几个步骤: 服务端 * 设置本设备为可发现. * 公开服务给其他Bluetooth设备访问. * 接受其他Bluetooth设备的链接 ...

  5. 在 .NET Compact Framework 2.0 中宿主 ActiveX 控件

    适用于: ActiveX Microsoft .NET Compact Framework 版本 2.0 摘要:了解如何在使用 .NET Compact 的应用程序中宿主 ActiveX 控件.本文提 ...

  6. 在Windows Mobile和Wince(Windows Embedded CE)下如何使用.NET Compact Framework开发进程管理程序...

    在.NET Compact Framework 的进程管理需要调用win32的API,也就是P/Invoke,在msnd上提供了这一P/Invoke的源代码, Creating a Microsoft ...

  7. .NET Compact Framework 2.0 SP2 for Platform Builder (4.2, 5.0, 6.0)

    .NET Compact Framework 2.0 SP2 前段时间已经发布了,详情看我之前写的 .NET Compact Framework 2.0 SP2 悄悄来临.在2007年3月份的 Win ...

  8. Microsoft .NET Compact Framework 开发常见问题解答

    这个 FAQ 有部分是通过编辑公共 .NET Compact Framework 新闻组 (microsoft.public.dotnet.framework.compactframework) 贴出 ...

  9. .NET Compact Framework s60v3(在S60上运行Windows Mobile程序)

    注:以下内容未经过本人测试,只是看到该消息,本人没有S60手机,无法测试真实性和可靠性,但希望能够将消息告诉给所有对.Net CF热爱的同志.这将是一缕曙光,使得S60上运行WM程序变为可能. 原贴如 ...

  10. .NET Compact Framework下的单元测试

    在 Wince和Windows Mobile下native C++的单元测试 里讲述了在Wince和Windows Mobile下native C++进行单元测试的方法,这篇将会讲述.NET Comp ...

最新文章

  1. webservice restful类型接口的调用实例
  2. 阿里启动NASA计划创造新经济核心科技
  3. chisel快速入门(一)
  4. nginx日志查看goaccess安装使用
  5. SIGCHLD waitpid, 小心子进程结束事件被偷了
  6. python虚拟环境windows环境搭建_window10配置python虚拟环境的路径
  7. deepin linux Qt无法输入中文
  8. 【2022年江西省研究生数学建模】水汽过饱和的核化除霾 31页论文分析
  9. NetSetMan Pro(ip快速切换工具)官方中文版V5.1.0 | 电脑ip切换软件下载
  10. 服务器是用集成网卡好还是独立网卡好
  11. 固态硬盘和机械硬盘区别 固态硬盘和机械硬盘的优缺点
  12. matlab制作图片显示器,自己动手做一个雷达PPI显示器的动态效果图(附Matlab代码)...
  13. 华为手机日历倒计时_倒计时软件app哪个好 苹果倒计时软件推荐
  14. 【190411】VC++ 双摄像头视频监控捕捉程序源代码
  15. JAVA生成PDF标点符号不换行_iText生成中文PDF行首标点处理
  16. go grpc 健康检查
  17. 软件测试岗位考核指标,(最新整理)测试人员考核标准
  18. Java冷知识之——魔数(Magic Number)
  19. 【厚积薄发系列】C++项目总结16—单例模式释放时机导致的崩溃问题分析
  20. java获取当前日期 前后 几个月的 日期期间 往前 2个月 往后 2个月

热门文章

  1. es 时间字段聚合_ES聚合命令
  2. 简单理解编程语言的工作原理
  3. 电子相册系统(八)验证用户是否可用
  4. 使用 Eclipse 平台进行调试
  5. 基于CUDA的GPU优化建议
  6. Jmeter逻辑控制器操作,附栗子
  7. 博客园修改TinyMCE编辑器为Markdown编辑器的方法
  8. Django--4、认证系统
  9. Codeforces.741D.Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths(dsu on tree 思路)
  10. SpringBoot集成JWT 实现接口权限认证