Kestin's profile前朝记忆渡红尘, 伤人的不是刀刃,是你转世而来的...PhotosBlogListsMore Tools Help

Blog


    November 19

    Json

    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)。

    这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

    JSON具有以下这些形式:

    对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。

    数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。

    值(value)可以是双引号括起来的字符串(string)、数值(number)、truefalsenull、对象(object)或者数组(array)。这些结构可以嵌套。

    字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线('\')转义。一个字符(character)即一个单独的字符串(character string)。

    字符串(string)与C或者Java的字符串非常相似。

    数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。

    空白可以加入到任何符号之间。 以下描述了完整的语言。

     


    这样的话,我们可以把自己的所有对象都支持ToJson方法,就可以把Json对象ToString传递给JS客户端。

    比如服务器端有结构体

    struct myStruct
    {
         int Data;
         string Name;
         bool Valid;
         DateTime TimeStamp;
         public JsonObjectCollection ToJson()
         {
               JsonObjectCollection obj = new JsonObjectCollection();
               obj.Add( new System.Net.Json.JsonStringValue( "Name", Name ) );
               obj.Add( new System.Net.Json.JsonStringValue( "Data", Data ) );
               obj.Add( new System.Net.Json.JsonStringValue( "TimeStamp", TimeStamp.ToString() ) );
               obj.Add( new System.Net.Json.JsonBooleanValue( "Valid", Valid ) );
               return obj;
         }
    }

    JS拿到服务器传回来的Json String之后
    var jsonstring = '服务器传回的字符串'
    eval('jsonObject=' + jsonstring)
    alert( jsonObject.Name )
    alert( jsonObject.Data )
    像我们写JS对象一样,很方便

    Json的所有对象都继承自JsonObject
    集合可以嵌套,不过集合最外层的不能有Name属性,设置了Name之后JS端Eval时会报错

    这个玩艺用起来还是很爽的

    November 04

    FF6 主体曲歌词

    看流星在夜空轻轻划落

    所有寂寞 都被打破

    风在对你轻轻诉说什么

    能不能告诉我

    泪水在我脸庞轻轻划落

    请原谅我 这样懦弱

    我知道你只想让我快乐

    请你拥抱着我

    让我感动你

    不管怎样也要在一起不离开你

    忘了我自己

    我把我的一切全部都交给你

    不再哭泣

    我会一直陪你

    连时间都忘记

    永不分离

    为什么你不能留在这里

    怎么能够

    让我忘记

    拥有和你这段美丽回忆

    永远埋藏心底

    纵使你离开我的世界里

    我不哭泣

    让你放心

    如果来生能够再遇见你

    永远不离不弃

    一个人面对所有的回忆不容易

    保重你自己

    在我心中没有人能够代替你

    你是唯一

    默默地祝福你

    看着你的背影

    已渐迷离...