【転載】プレイフレーム2.0実戦(6)-json

6466 ワード

現在のプロジェクトの多くはデータで駆動されています.これにより、複数のデバイスの呼び出しに適応することができる.ここではjsonフォーマットが一般的です.公式ドキュメントでは、jsonデータを変換する方法も説明されています.(www.playframework.org/documentation/2.0.2/JavaJsonRequests)ここでは、特別な状況に関する処理をもっと紹介します.次のようなデータがあります.
 
{
  "introImg": "/assets/images/main/gdouIntro.jpg",
  "catalogName": "    ",
  "website": "http://www.gdou.com",
  "catalogID": 10000,
  "titileImg": "#",
  "mobileList": [{     "deviceCSS": "device device_iphone",     "viewCSS": "view view_iphone",     "minCSS": "minimg minimg_iphone",     "deviceID": 500,     "mobileIntro": "  ",     "showImg": "/assets/images/device/iphone/gdou/1.jpg",     "showCSS": "display display_iphone",     "downloadUrl": null,     "deviceImg": "/assets/images/device/iphone.png",     "bgCSS": "phone_bg",     "menuCSS": "device_item item_iphone",     "imgList": [{ "itemID": "5005", "picUrl": "/assets/images/device/iphone/gdou/1.jpg", "picID": 155 }, { "itemID": "5005", "picUrl": "/assets/images/device/iphone/gdou/2.jpg", "picID": 156 }, { "itemID": "5005", "picUrl": "/assets/images/device/iphone/gdou/3.jpg", "picID": 157 }, { "itemID": "5005", "picUrl": "/assets/images/device/iphone/gdou/4.jpg", "picID": 158 }, { "itemID": "5005", "picUrl": "/assets/images/device/iphone/gdou/5.jpg", "picID": 159 }],     "deviceName": "iphone",     "mobileID": 5005,     "mobileName": "    (iphone)",     "bgImg": "/assets/images/device/phone_bg.jpg" },

json配列のフィールドには、別の配列が含まれています.私たちはいくつかの方法で処理しなければなりません.
 
 
//出力結果のコンテナArrayList jsonList=new ArrayList()を作成する.
//データ層から取得するデータList catalogList=GdouCatalog.GetCatalogByID(catalogID);
//得られたデータを巡るfor(GdouCatalog item:catalogList)
        {
            Map
 
            node.put("catalogID",item.catalogID);
            node.put("catalogName",item.name);
            node.put("intro",item.intro);
            node.put("website",item.website);
            node.put("logoImg",item.logoImg);
            node.put("titileImg",item.titleImg);
            node.put("introImg",item.introImg);
//二次遍歴
           ArrayList jsonMobileList= new ArrayList();
 
            for(GdouMobileItem mobile:item.itemList)
            {
                Map
                
                GdouMobile mobileInfo=GdouMobile.GetMobileInfo(mobile.mobileID);
                mobileNode.put("deviceID",mobile.mobileID);
                mobileNode.put("deviceName",mobileInfo.mobileName);
                mobileNode.put("menuCSS",mobileInfo.menuCSS);
                mobileNode.put("showCSS",mobileInfo.showCSS);
                mobileNode.put("bgCSS",mobileInfo.bgCSS);
                mobileNode.put("bgImg",mobileInfo.bgImg);
                mobileNode.put("deviceImg",mobileInfo.deviceImg);
                mobileNode.put("deviceCSS",mobileInfo.deviceCSS);
                mobileNode.put("viewCSS",mobileInfo.viewCSS);
                mobileNode.put("minCSS",mobileInfo.minCSS);
                mobileNode.put("mobileID",mobile.itemID);
                mobileNode.put("mobileName",mobile.name);
                mobileNode.put("mobileIntro",mobile.intro);
                mobileNode.put("downloadUrl",mobile.downloadUrl);
 
 
                ArrayList imgList= new ArrayList();
 
                int count=0;
 
                for(GdouMobileImg img :mobile.imgList)
                {
                    Map
 
                    imgNode.put("picID",img.picID);
                    imgNode.put("picUrl",img.picUrl);
                    imgNode.put("itemID",img.itemID);
 
                    imgList.add(imgNode);
 
                    if(count==0)
                    {
                        mobileNode.put("showImg",img.picUrl);
                    }
                    count++;
                   //jsonList.add(node);
 
                }
               
                mobileNode.put("imgList",imgList);
                jsonMobileList.add(mobileNode);
 
            }
 
            node.put("mobileList",jsonMobileList);
 
            jsonList.add(node);
        }