这几天在解析开心网争车位的消息时,发现开心网的争车位页面和FLASH在传递消息时,返回了一种未见过的数据格式,后来网上一查,是JSON,一种轻量级的数据交换格式,原英文名为
JavaScript Object Notation,易于人阅读和编写。同时也易于机器解析和生成。 在传递少量的数据时,用JSON格式,看来是很不错的选择。又在网上搜了一番,找到一个组件Newtonsoft.Json.dll,说是可以解析JSON格式数据,加载进去,开始果然解析的不错,不过,当出现unicode编码字符串,就发现不好使了。该组件直接把unicode编码字符串中的\u直接略过,只返回了一串16进制数。如果只有汉字,倒还好转换,但如果加上英文和数字就难办了,不知道从哪里区分出英文和数字。解决的一个办法就是,在传递给Newtonsoft.Json.dll组件unicode字符串之前,先将字符串做一个\u的替换操作。如:str.Replace("\\u", "\\\\u");这样经解析过后的JSON格式数据,就会保留\u在字符串中,在转换时,只要逐个unicode字进行转换就行了。
经过这些改造,也可以正常运行在我的争车位小帮手程序里。
微软的.net 3.5里面也有JSON格式的解析类,但必须要有.net 3.5才行。除了这个功能之外,其他都可以在.net 2.0上运行,弃之未用。
阅读(633) | 评论(0) | 转发(0) |