1.什么是JSON
这个以前只是听说,并没有真正用(以前都是用XML作为数据载体)。
这种数据结构更简洁,说白了就是“键/值”(key-value)对,用“:”来分隔键值,用逗号来分隔各键值对。(可以用HashMap来对照理解)
以下抄些概念:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition – December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
JSON建构于两种结构:
- “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
- 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
参考网址(这方面的资料太多了):
http://www.json.org/(JSON官网)
http://amiku.cn/what-is-json.shtml
http://ssgemail.javaeye.com/blog/36776
2.什么PhoneGap
这个是第一次接触的东东,目前项目里用到的功能是调用手机摄像头拍照并得到照片。
Baidu到的资料如下:
PhoneGap是一个开源的开发框架,用来构建跨平台的使用HTML,CSS和JavaScript的移动应用程序。它使开发者能够利用iPhone,Android,Palm,Symbian和Blackberry智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动。PhoneGap是免费的,但是它需要特定平台提供的附加软件,例如iPhone的iPhone SDK,Android的Android SDK等。使用PhoneGap只比为每个平台分别建立应用程序好一点点,因为虽然基本代码是一样的,但是你仍然需要为每个平台分别编译应用程序。
也就是有了这个框架就可以用JavaScript访问摄像头等手机中的软硬设备,It's Cool!
3.图片image与Base64
在网页上插入图片:
<img src="data:image/gif;base64,R0lGODlhDwAPAKECAAAAzMzMwAAACwAAAAADwAPAAACIISPeQHsrZ5ModrLlN48CXF8m2iQ3YmmKqVlRtW4ML
wWACH+H09wdGltaXplZCBieSBVbGVhZCBTbWFydFNhdmVyIQAAOw==" alt="Base64 encoded image" width="150" height="150"/>
src的值不是某一张具体图片的文件位置,而是一个Base64的字符串(注意前导字符是:“data:image/gif;base64,”)。
这种data: URI的格式能把Base64(或其他数据)可以内嵌在image标签的属性当中(或者CSS中)。
我们可以使用C#程序来实现Image与Base64字符串相互转换:
(以下代码来自优快云博客flyjimi的专栏http://blog.youkuaiyun.com/flyjimi/archive/2006/08/31/1149855.aspx)
private string GetBase64String(System.Drawing.Image image)
{
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] buffer = ms.ToArray();
return Convert.ToBase64String(buffer);
}
private string FixBase64ForImage(string ImageText)
{
System.Text.StringBuilder sbText = new System.Text.StringBuilder(ImageText, ImageText.Length);
sbText.Replace("/r/n", String.Empty);
sbText.Replace(" ", String.Empty);
return sbText.ToString();
}
private Image GetImageFromBase64String(string ImageText)
{
if (ImageText.Length > 0)
{
Byte[] bitmapData = new Byte[ImageText.Length];
//bitmapData = Convert.FromBase64String(FixBase64ForImage(ImageText));
bitmapData = Convert.FromBase64String(ImageText);
System.IO.MemoryStream streamBitmap = new System.IO.MemoryStream(bitmapData);
// Bitmap bitImage = new Bitmap((Bitmap)Image.FromStream(streamBitmap));
return Image.FromStream(streamBitmap);
}
else
{
return null;
}
}
4.HTML5
HTML5是HTML下一个的主要修订版本,现在仍处于发展阶段。目标是取代1999年所定订的HTML 4.01和XHTML 1.0 标准,以期能在互联网应用迅速发展的时候,使网络标准达到符合当代的网络需求。广义论及HTML5时,实际指的是包括HTML、CSS和JavaScript在内的一套技术组合。它希望能够减少浏览器对于需要插件的丰富性网络应用服务(plug-in-based rich internet application,RIA),如Adobe Flash、Microsoft Silverlight,与Oracle JavaFX的需求,并且提供更多能有效增强网络应用的标准集。
与HTML 4的不同之处在于:
http://zh.wikipedia.org/zh-cn/HTML5
- 新的解析顺序:不再基于SGML
- 新的元素:
section, video, progress, nav, meter, time, aside, canvas, command, datalist, details, embed, figcaption, figure, footer, header, hgroup, keygen, mark, output, rp, rt, ruby, source, summary, wbr
- input元素的新属性:日期和时间,
email, url
- 新的通用属性:
ping(用於a與area), charset(用於meta), async(用於script)
- 全域属性:
id, tabindex, repeat
- 移除元素:
acronym, applet, basefont, big, center, dir, font, frame, frameset, isindex, noframes, s, strike, tt, u