<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    數據加載中……
    flexjson 文檔的翻譯,這里只是一部分,更詳細的請訪問 http://flexjson.com.cn/flexjson.html

    來源: http://flexjson.com.cn/flexjson.html

    The Basics

    flexjson采取了不同的做法,讓你方便地控制序列化的深度。它與hibernate有個十分相似的概念延遲加載,允許你有一個連接對象模型,但控制哪些對象被加載了是在你的數據庫之外執行。讓我們來看一個簡單的例子,讓你感覺一下flexjson library如何工程。我們序列化一個Person的實例。我們不妨做到以下幾點:

    public String doSomething( Object arg1, ... ) {

            Person p = ...load a person...;

            JSONSerializer serializer = new JSONSerializer();

            return serializer.serialize( p );

        }

       

    上述代碼將會產生下列輸出:

    {

            "class": "Person",

            "name": "William Shakespeare",

            "birthday": -12802392000000,

            "nickname": "Bill"

    }

    Working With Includes

    看起來幾乎像你所期待的。然而我們的Person對象包含了更多的屬性比如姓名,生日,昵稱,還有電話號碼和地址?默認情況下flexjson序列化對象的直接屬性。這只是一個淺層的代表對象。所有容器類都是沒有系列化。或者說,一對多的關系和多對多的關系并沒有序列化。是指對象引用系列化。還有多對一的關系和一對一的關系將被序列化。這一點與其他的library一樣,像HibernateJPA默認是熱切加載。但是我們希望包括phonenumbers屬性,然后我們可以做到以下幾點:

    public String doSomething( Object arg1, ... ) {

            Person p = ...load a person...;

            return new JSONSerializer().include("phoneNumbers").serialize(p);

    }

    在這個例子中,我們將告訴序列化器對象包括的屬性。容器類的系列化是淺層復制包括的對象內容。所以在我們的例子中,Person有個List類型的屬性叫phonenumbers List類中包含Phong實例。這意味著flexjson將淺拷貝的Person,名單phonenumbers ,淺拷貝的每一個電話,例如內部的名單上。所以輸出可能看起來是這樣的:

    {

            "class": "Person",

            "name": "William Shakespeare",

            "birthday": -12802392000000,

            "nickname": "Bill"

            "phoneNumbers": [

                {

                    "class": "Phone",

                    "name": "cell",

                    "number": "555-123-4567"

                },

                {

                    "class": "Phone",

                    "name": "home",

                    "number": "555-987-6543"

                },

                {

                    "class": "Phone",

                    "name": "work",

                    "number": "555-678-3542"

                }

           ]

    }

    熟悉這個用法了?這實在是太簡單。如果你想包含phonenumbersaddress,你可以執行兩次include方法,或者你可以包括兩個參數,include方法使用了Java的新語法功能。我個人較喜歡因為我認為這將令程序短小且易于閱讀。但是,那是你自己的選擇。

        public String doSomething( Object arg1, ... ) {

            Person p = ...load a person...;

            return new JSONSerializer().include("phoneNumbers", "addresses").serialize(p);

        }

    所以在這種情況下,我們將只能獲得一個街,市,州,但不是郵政編碼,因為這是一個對象引用。它采用一種簡單的固定小點記法。這里是一個例子,包括郵編每個地址舉例。

        public String doSomething( Object arg1, ... ) {

            Person p = ...load a person...;

            return new JSONSerializer().include("phoneNumbers", "addresses.zipcode").serialize(p);

    }

     

    Flexjson 是足夠聰明的知道你想要對象本身包含collection容器類和不包含collection容器類。它也足夠聰明的知道地址引用也包括郵編,讓您不用指定兩次。你可以非常容易的使用點符號追尋你的對象圖。

    More on Includes

    有一個候補的serialize )方法允許您指定一個外部對象集合。也有一些JavaScriptlibraryEXTJS(previously known as YUI-EXT)要求這為他們的JSON 數據模型。不過,我并沒有發現有任何JSONlibrary提供這種類型的系列化。下面是一個例子:

        public String getPeople( Object arg1, ... ) {

            List people = ...load a person...;

            return new JSONSerializer().include("phoneNumbers").serialize("people", people);

        }

     

    上述代碼將會產生下列輸出:

    {

            "people" : [

                {

                    "class": "Person",

                    "name": "Warren Buffet",

                    "birthday": -1241467200000,

                    "nickname": "Oracle of Omaha",

                    "phonNumbers" : [ ... ],

                },

                {

                    "class": "Person",

                    "name": "Steven Jobs",

                    "birthday": -468702000000,

                    "nickname": "Steve",

                    "phonNumbers" : [ ... ],

                }

            ]

        }

    posted on 2008-04-01 09:39 java flex 結合 閱讀(1479) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲色大成网站WWW国产| 亚洲精品福利在线观看| 国产亚洲精品美女2020久久| 欧美大尺寸SUV免费| 亚洲一卡2卡3卡4卡国产网站| jjizz全部免费看片| 亚洲国产成人91精品| 妻子5免费完整高清电视| 亚洲一区二区三区久久久久| 国产精品视频免费一区二区| 亚洲欧洲无码AV不卡在线| 日韩一区二区免费视频| 男女污污污超污视频免费在线看| 亚洲日本一区二区一本一道| 日本免费中文字幕| 亚洲综合久久一本伊伊区| 四虎成人免费大片在线| 特a级免费高清黄色片| 亚洲人成人无码网www电影首页 | 久久久久久毛片免费看| 色婷婷亚洲十月十月色天| 日本亚洲免费无线码| 国产成人亚洲综合a∨| 人人狠狠综合久久亚洲88| 国产成人精品免费视频动漫| 亚洲成a人无码亚洲成www牛牛| 亚洲精品和日本精品| 日本免费一区二区三区 | 日本一道本高清免费| 久久久久久噜噜精品免费直播| 亚洲成年人电影在线观看| 国产乱子伦片免费观看中字| 国产成人免费ā片在线观看老同学 | 日韩激情无码免费毛片| 国产精品免费大片一区二区| 精品无码一区二区三区亚洲桃色| 日本特黄a级高清免费大片| 两个人看的www高清免费视频| 亚洲天堂中文字幕在线观看| 亚洲国产精品视频| 免费A级毛片无码无遮挡内射|