
2008年6月10日
JSON定义
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集。 JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式。
JSON的结构基于下面两点
- 1. "名称/值"对的集合 不同语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),键列表(keyed list)等
- 2. 值的有序列表 多数语言中被理解为数组(array)
JSON使用:
JSON以一种特定的字符串形式来表示 JavaScript 对象。如果将具有这样一种形式的字符串赋给任意一个 JavaScript 变量,那么该变量会变成一个对象引用,而这个对象就是字符串所构建出来的,好像有点拗口,我们还是用实例来说明。
这里假设我们需要创建一个User对象,并具有以下属性
用户ID
用户名
用户Email
您可以使用以下JSON形式来表示User对象:
{"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"};
然后如果把这一字符串赋予一个JavaScript变量,那么就可以直接使用对象的任一属性了。
完整代码:
<script>var User = {"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"};
alert(User.Name);
</script>
实际使用时可能更复杂一点,比如我们为Name定义更详细的结构,使它具有FirstName和LastName:
{"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"}
完整代码:
<script>var User = {"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"};
alert(User.Name.FirstName);
</script>
现在我们增加一个新的需求,我们某个页面需要一个用户列表,而不仅仅是一个单一的用户信息,那么这里就需要创建一个用户列表数组。
下面代码演示了使用JSON形式定义这个用户列表:
[
{"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},
{"UserID":12, "Name":{"FirstName":"Jeffrey","LastName":"Richter"}, "Email":"xxx◎xxx.com"},
{"UserID":13, "Name":{"FirstName":"Scott","LastName":"Gu"}, "Email":"xxx2◎xxx2.com"}
]
完整代码:
<script>
var UserList = [
{"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},
{"UserID":12, "Name":{"FirstName":"Jeffrey","LastName":"Richter"}, "Email":"xxx◎xxx.com"},
{"UserID":13, "Name":{"FirstName":"Scott","LastName":"Gu"}, "Email":"xxx2◎xxx2.com"}
];
alert(UserList[0].Name.FirstName);
</script>
事实上除了使用"."引用属性外,我们还可以使用下面语句:
alert(UserList[0]["Name"]["FirstName"]); 或者 alert(UserList[0].Name["FirstName"]);
现在读者应该对JSON的使用有点认识了,归纳为以下几点:
对象是属性、值对的集合。一个对象的开始于“{”,结束于“}”。每一个属性名和值间用“:”提示,属性间用“,”分隔。
数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。
值可以是引号里的字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。
字符串和数字的定义和C或Java基本一致。
小节:
本文通过一个实例演示,初步了解了JSON 的强大用途。可以归结如下:
JSON 提供了一种优秀的面向对象的方法,以便将元数据缓存到客户机上。
JSON 帮助分离了验证数据和逻辑。
JSON 帮助为 Web 应用程序提供了 Ajax 的本质。
参考资料:
http://www.json.org/
http://www.cnblogs.com/Truly/archive/2006/12/31/608896.html
http://www.json.org/json-zh.html
posted @
2008-06-10 12:19 Alex’Sky 阅读(83) |
评论 (0) |
编辑

2007年3月7日
1、在B机上安装设备仿真程序
(1)先确保B机上已安装了Windows Install 3.0以上版本。
(2)Visual Studio 2005 安装光盘上的 wcu\ARM\vs_emulator.exe是设备仿真程序的安装向导,双击运行,然后按照提示进行操作。设备仿真程序默认安装在C:\Program Files\Microsoft Device Emulator\1.0文件夹下。DeviceEmulator.exe是设备仿真器程序,dvcemumanager.exe是设备仿真器管理器。
2、将A机上的内核映像文件复制到B机
设备仿真程序要模拟哪一种设备,就需要用到这种设备的内核映像文件(扩展名为bin)。在B机C:\Program Files\Microsoft Device Emulator\1.0文件夹下新建一个images文件夹,并根据需要将下面A机中的映像文件复制到这里。
Pocket PC 2003 SE的映像文件默认安装在C:\Program Files\Microsoft Visual Studio 8\SmartDevices\Emulators\Images\PocketPC\2003\2052文件夹下,文件名是PPC_2003_SE_CHS_ARMv4.bin。
Pocket PC 2003 SE VGA的映像文件默认安装在C:\Program Files\Microsoft Visual Studio 8\SmartDevices\Emulators\Images\PocketPC\2003\VGAPortrait\2052文件夹下,文件名PPC_2003_SE_VGA_CHS_ARMv4.bin。
Smartphone 2003 SE的映像文件默认安装在C:\Program Files\Microsoft Visual Studio 8\SmartDevices\Emulators\Images\Smartphone\2003\2052文件夹下,文件名SP_2003_SE_CHS_ARMv4.bin。
Smartphone 2003 SE QVGA的映像文件默认安装在C:\Program Files\Microsoft Visual Studio 8\SmartDevices\Emulators\Images\Smartphone\2003\QVGA\2052文件夹下,文件名SP_2003_SE_QVGA_CHS_ARMv4.bin。
因为我在A机中安装了Windows Mobile 5.0 Pocket PC SDK和Windows Mobile 5.0 Smartphone SDK,所以也可以找到相应映像文件。
中文CHS Windows Mobile 5.0 Pocket PC的映像文件默认安装在C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Emulator Images for Pocket PC - CHS\Deviceemulation\0804文件夹下。
中文CHS Windows Mobile 5.0 Smartphone的映像文件默认安装在C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Emulator Images for Smartphone - CHS\Deviceemulation\0804文件夹下。
英文Windows Mobile 5.0 Pocket PC的映像文件默认安装在C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Deviceemulation\0409文件夹下。
英文Windows Mobile 5.0 Smartphone的映像文件默认安装在C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Smartphone SDK\Deviceemulation\0409文件夹下。
3、将A机上的外观文件复制到B机
在设备仿真程序运行时,还可以为仿真程序指定外观文件,以获得更逼真的效果。每一种外观由三个bmp或png文件和一个xml 文件组成,并且保存在同一个文件夹下。xml文件是外观定义文件,三个bmp或png 图像文件分别显示仿真程序的默认外观、所有按钮均为按下状态的仿真程序外观和由一种颜色填充的每个按钮的区域。
在 B机的C:\Program Files\Microsoft Device Emulator\1.0文件夹下新建一个skins文件夹,并将A机中相应的外观文件复制到这里。
PocketPC2003和Smartphone 2003的外观文件在C:\Program Files\Microsoft Visual Studio 8\SmartDevices\Skins文件夹中。
Windows Mobile 5.0 Pocket PC的外观文件在C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Deviceemulation文件夹下除0409子文件夹外其它的文件夹中。
Windows Mobile 5.0 Smartphone的外观文件在C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Smartphone SDK\Deviceemulation文件夹下除0409子文件夹外其它的文件夹中。
4、在B机上安装Microsfot ActiveSync 4.2简体中文版
这主要是为了便于设备仿真程序与B机之间进行数据同步。
5、在B机上创建桌面快捷方式
(1)为C:\Program Files\Microsoft Device Emulator\1.0\dvcemumanager.exe创建桌面快捷方式“设备仿真器管理器”。
(2)C:\Program Files\Microsoft Device Emulator\1.0文件夹下DeviceEmulator.exe是设备仿真器程序,应该带参数运行。
主要开关参数如下:
os_image_file_name:指定仿真程序要使用的内核映像的路径和文件名称(*.bin 或 *.nb0)。除非使用 /s 开关启动,否则为必需的参数。
/skin skin_file_name:加载指定的外观文件。
/s filename:指定保存状态文件。如果没有指定任何 ROM 映像,则必须有 /s filename,仿真程序将从指定的保存状态文件还原。当该仿真程序退出时,它会将新状态保存到保存状态文件的最前面。
只要弄清楚了某种设备的映像文件和对应的外观文件,就可以创建该设备仿真程序的快捷方式。
以Pocket PC 2003 SE为例,先为DeviceEmulator.exe创建桌面快捷方式“Pocket PC 2003 SE”,然后修改该快捷方式的“目标”为:
"C:\Program Files\Microsoft Device Emulator\1.0\DeviceEmulator.exe" images\PPC_2003_SE_CHS_ARMv4.bin /skin skins\PocketPC_2003\2052\PocketPC_2003_Skin.xml
(3)如果弄不清映像文件与外观文件的对应关系,可打开A机的Visual Studio 2005查看。
依次点击“工具”—>“选项”—>“设备工具”—>“设备”,见图1:

图1
选中某一设备,点击“属性”按钮,见图2:

图2
点击“仿真器选项”按钮,可看到该种设备的映像文件名称,见图3:

图3
在“显示”选项卡中,可看到对应的外观文件,见图4:

图4
(4)如果在B机桌面了创建了多个设备仿真程序的快捷方式方式,会显得比较凌乱,应该把它们组织到程序菜单中比较好。
好了,客户的电脑上也有了Pocekt PC 2003模拟器。什么时候想测试程序,只要点击菜单启动模拟器,再通过ActiveSync将应用程序布署到模拟器上运行就行了。但每次测试时,都要部署一遍,并且客户对电脑操作又不太熟练,感觉还是有点儿麻烦。因此,客户又提出来,能不能再简单点儿呢?
答案是肯定的。只要用上前面提到的“/s”开关参数,就能解决这个问题。
6、将A机上的设备仿真程序保存状态文件复制到B机
设备仿真程序使用 .dess扩展名的文件,来保存设备仿真程序中所有的 RAM、ROM 和设置信息。因此,.dess 文件是还原保存状态时必需的唯一文件。我在A机上调试程序时,会将程序部署到A机上的设备仿真程序中。调试通过后,关闭设备仿真程序时,系统询问“退出之前保存仿真程序状态吗?”,此时选择“是”,将产生一个保存状态文件,默认情况下位于C:\Documents and Settings\<username>\Application Data\Microsoft\Device Emulator 下,文件名为{B22C75F5-ABFC-4ca8-954F-7D4AB28CF096}.dess。保存状态文件的文件名是仿真程序的当前虚拟机标识符 (VMID),在不同的机器上会有所不同。
(1)在B机D盘上新建一个Emulator文件夹。
(2)将A机上的{B22C75F5-ABFC-4ca8-954F-7D4AB28CF096}.dess复制到B机的D:\ Emulator文件夹下。
(3)在B机的桌面上创建快捷方式“我的Pocekt PC 2003”,修改快捷方式的目标为:
"C:\Program Files\Microsoft Device Emulator\1.0\DeviceEmulator.exe" /s d:\emulator\{B22C75F5-ABFC-4ca8-954F-7D4AB28CF096}.dess
这样,客户只要双击桌面上的“我的Pocekt PC 2003”,就可直接测试程序,无需通过ActiveSync重新布署了。而我修改程序后,只要将最新的保存状态文件传给客户,覆盖掉原来的文件即可。以后双方交流的时候,无需见面,在网上就可以进行了。
posted @
2007-03-07 17:24 Alex’Sky 阅读(1531) |
评论 (2) |
编辑