JSONDocument

Q1
JSONデータの取り扱いについて
A1

Biz/Browser VへJSONデータを扱うJSONDocumentクラスが追加され、CRSプログラムで直接JSONデータの読込、出力が可能となりました。

JSONDocumentへ読込まれたJSONデータは、内部でArrayオブジェクトへ展開されます。
JSONデータがどのようにArrayオブジェクトへ展開されるかは、こちらのオンラインマニュアルをご参照ください。

JSONデータが展開されたArrayオブジェクトは、JSONDocumentのvalueプロパティから参照します。
詳しい記述方法については、下記サンプルコードをご参照ください。

[ サンプルコード ]
 PulldownListの項目へサーバーから取得したJSONデータを表示

/* JSONデータ格納用 */
JSONDocument jsonData;

PulldownList pList1 {
  X = 16;
  Y = 152;
  Width = 340;
  Height = 82;
  PulldownItem Item1[] {
    
    Function OnTouch( e ) {
      /* 選択した項目の内容をラベルに表示する */
      /* JSONDocumentの値をArrayクラスに入れる */
      var arrData = Json50_001.jsonData.value;
      
      /* 情報を取得する */
      var itemName = arrData["item"][e.from.index]["itemName"];
      var itemPrice = arrData["item"][e.from.index]["itemPrice"];
      
      /* Label2へ表示する */
      Json50_001.Label2.Value = itemName + "の値段は "
                                 + str(itemPrice) + " 円です";
    }
  }
}

Label Label1 {
  X = 20;
  Y = 212;
  Width = 336;
  Height = 30;
  Value = "選択された項目の情報";
  VerticalAlign = $BOTTOM;
}

Label Label2 {
  X = 20;
  Y = 246;
  Width = 336;
  Height = 45;
  VerticalAlign = $CENTER;
  HorizontalAlign = $CENTER;
  FontSize = 14;
  BgColor = $CCFFCC;
}

if ( !$DESIGNTIME ) {
  /* サーバーからJSONデータを取得する
  * 「http://localhost」へjsondata.jsonが配置されている事が
  * 前提となります。
  */
  var session = findHttpSession("http://localhost");
  var res = session.get("/jsondata.json");

  /* 取得したJSONデータをJSONDocumentへロード
    ※ポイント
      JSONDocument(jsonData)へロードされたデータは
      JSONDocument内部でArrayオブジェクトへ展開、保持されます。
  */
  jsonData.load(res);    
    
  /* JSONデータを解析した値を取得する
    ※ポイント
      JSONDocumentのvalueの型は「Array」です。
      よって以下「arrData」にはArrayオブジェクトが格納されます。
  */
  var arrData = jsonData.value;
  
  /* PulldownItemの要素(index)番号格納用 */
  var maxLength;  
  var i;
  /* JSONデータのitem数分ループ */
  for (i = 0; i < arrData["item"].length; i++ ) {
    
    /* PulldownListへ要素(項目)を追加 */
    pList1.Item1.insert(1);
    
    /* PulldownItemの要素(index)番号を取得 */
    maxLength = pList1.Item1.length - 1;
    
    /* ItemCodeをPulldownList.Valueに、
      ItemNameをPulldownList.Titleに設定する */
    pList1.Item1[maxLength].value = arrData["item"][i]["itemCode"];
    pList1.Item1[maxLength].title = arrData["item"][i]["itemName"];
  }
}


実際の動作についてはCRSファイル形式のサンプル
  「JSONデータの取り扱いについて(Json50_001.zip)
でご確認ください。

管理番号:Json50_001
 
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser V・Biz/Designer V TIPS集 トップへ