2008年10月22日 星期三

[Java]簡易JSON, Java Object->JavaScript Object

JSON算是javascript的一個處理物件格式的方法吧...
總之這裡是講利用JSON把Java Object轉成Javascript 物件

lib:
json-lib-2.2.2-jdk15.jar
除了json-libxxxx之外, 好像也會有用到一些common的jar檔, 不過主要就是這個...
另外json這個只能在jdk1.5的環境下才能跑得起來, 所以要看一下支援的程度

Java Class:
其實就是用一個bean物件來存資料, 當然重點就是在setter跟getter
public class Item {
String name, type;
int price;
public String getName() {return name;}
public String getType() {return type;}
public int getPrice() {return price;}
public void setName(String name) {this.name=name;}
public void setType(String type) {this.type=type;}
public void setPrice(int price) {this.price=price;}
}

然後把他變成javascript物件就是用
String out = JSONObject.fromObject(new Item()).toString();

一行簡簡單單就可以了\囧/...當然把這out輸出到javascript裡面就是一個等同的javascript物件...
{name:'',type:'',price:0}
如果bean屬性是List(或[]), 或是Object...他一樣能正確的轉出好幾層沒問題

大概要注意的就是~他是看setter跟getter在給的, 所以用純bean來製作比較不會有問題...
以免看到getXXX跟setXXX就拿值或給值造成不必要的問題

[Javascript]快速建立物件屬性

最近有需要用到很大量的Javascript, 但是原本都只會一個var等於一個值...
想說要是如果能把他當物件使用就好了...

這個是後來集合最快給值的寫法XD:
(其實有一些是用了json之後才發現原來javascript可以這樣子寫O.Oa)

var items=[]; // equals var items=new Array();
items[0]={name:'剪刀',type:'文具',price:150};
items[1]={name:'訂書機',type:'文具',price:200};

以此類推...

取值就可以用:
items[0].name
items[0].type
items[0].price

另外如果是要快速建立已經定好的物件, 可以用這個方式
var item1 = new Item({name:'原子筆',type:'文具',price:25});