[20110215-16]开发随笔

    技术2025-12-17  11

    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

       这个是第一次接触的东东,目前项目里用到的功能是调用手机摄像头拍照并得到照片。

       官网:http://www.phonegap.com

       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.csdn.net/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, wbrinput元素的新属性:日期和时间,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 教程:  http://www.w3school.com.cn/html5/html_5_intro.asp

    最新回复(0)