夢幻之旅
DEBUG - 天道酬勤
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
::
671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
<
2008年6月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
公告
本博客中未注原創的文章均為轉載,對轉載內容可能做了些修改和增加圖片注釋,如果侵犯了您的版權,或沒有注明原作者,請諒解
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(21)
給我留言
查看公開留言
查看私人留言
隨筆分類
(644)
Android(10)
(rss)
ANT(4)
(rss)
C#(10)
(rss)
C/C++(16)
(rss)
CSS(3)
(rss)
DataBase(119)
(rss)
DB-DailyMmaintenance(16)
(rss)
Design Patterns(27)
(rss)
english
(rss)
Exceptions(7)
(rss)
EXT(39)
(rss)
FLASH(9)
(rss)
Hardware(20)
(rss)
Hibernate(13)
(rss)
Html(23)
(rss)
Java(143)
(rss)
java Net(10)
(rss)
JavaScript(39)
(rss)
Linux(26)
(rss)
php(5)
(rss)
Regular Exp(3)
(rss)
Spring(17)
(rss)
Struts(12)
(rss)
TOOL(43)
(rss)
VB/VBA/VBS(5)
(rss)
webservice(9)
(rss)
XML(2)
(rss)
我的夢幻旅途(14)
(rss)
隨筆檔案
(669)
2017年9月 (4)
2016年10月 (1)
2015年6月 (1)
2015年4月 (2)
2015年1月 (1)
2014年8月 (2)
2014年7月 (9)
2014年6月 (1)
2014年5月 (2)
2014年4月 (3)
2014年3月 (3)
2013年10月 (4)
2013年9月 (8)
2013年8月 (4)
2013年6月 (3)
2013年5月 (4)
2013年4月 (7)
2013年3月 (1)
2013年1月 (3)
2012年12月 (4)
2012年11月 (1)
2012年10月 (1)
2012年9月 (4)
2012年8月 (1)
2012年7月 (2)
2012年6月 (1)
2012年5月 (4)
2012年4月 (2)
2012年3月 (1)
2012年2月 (4)
2012年1月 (6)
2011年12月 (10)
2011年11月 (7)
2011年10月 (6)
2011年9月 (37)
2011年8月 (34)
2011年7月 (44)
2011年6月 (10)
2011年5月 (5)
2011年4月 (3)
2011年3月 (1)
2011年2月 (1)
2011年1月 (18)
2010年12月 (9)
2010年11月 (13)
2010年10月 (17)
2010年9月 (2)
2010年8月 (10)
2010年7月 (10)
2010年6月 (5)
2010年5月 (8)
2010年4月 (9)
2010年3月 (11)
2010年2月 (3)
2010年1月 (8)
2009年12月 (6)
2009年11月 (10)
2009年10月 (5)
2009年9月 (1)
2009年8月 (18)
2009年7月 (6)
2009年6月 (2)
2009年5月 (1)
2009年4月 (4)
2009年3月 (6)
2009年2月 (5)
2009年1月 (3)
2008年12月 (13)
2008年11月 (13)
2008年10月 (30)
2008年9月 (9)
2008年8月 (24)
2008年7月 (17)
2008年6月 (15)
2008年5月 (16)
2008年4月 (15)
2008年3月 (19)
2008年2月 (3)
2008年1月 (20)
2007年12月 (24)
2007年11月 (9)
文章檔案
(6)
2008年4月 (1)
2008年3月 (1)
2008年1月 (2)
2007年11月 (2)
最新隨筆
1.?PP代碼生成器(四) 使用解決方案生成代碼
2.? PP代碼生成器(三) 設計freemarker模板, 創建解決方案
3.? PP代碼生成器(二) 解決方案, 生成任務, 輔助設計面板
4.? PP代碼生成器(一) 簡介, 下載, 運行
5.?PP持久層代碼生成器
6.?比較好的博客
7.?系統集成項目管理工程師
8.?軟件公司項目經理崗位職責
9.?聯想筆記本 顯示屏 鍵盤失靈 釋放靜電
10.?eclipse maven
積分與排名
積分 - 961256
排名 - 37
最新評論
1.?re: Myeclipse 快捷鍵大全(絕對全)
crl+向右箭頭(輸入法有問題打不出來)移到下一個參數的位置,然后crl+shift+向右箭頭 選中該位置的參數即可
--紅領巾
2.?re: Log4j基本使用方法
555
--555
3.?re: Myeclipse 快捷鍵大全(絕對全)[未登錄]
很不錯,謝謝
--銀狐
4.?re: Flex 表單
是誰這么無聊~嗚~~~
--HUIKK
5.?re: Spring AfterReturning 異常
具體是什么意思啊
--dingli
閱讀排行榜
1.?Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream(70034)
2.?log4j.properties 使用說明(42086)
3.?Myeclipse 快捷鍵大全(絕對全)(32737)
4.?TNSNAMES.ORA 配置(24400)
5.?oracle 樹狀查詢(21367)
評論排行榜
1.?Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream(53)
2.?JMail 異常: java.lang.NoClassDefFoundError: javax/activation/DataSource(21)
3.?javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first(14)
4.?java 讀取 excel 2003 或 excel 2007(14)
5.?java.lang.UnsupportedClassVersionError: Bad version number in .class file(8)
反射機制 自己設計ajax的json工具 練習
import
java.lang.reflect.
*
;
import
java.util.
*
;
/** */
/**
*
@author
惠萬鵬
* @time 2008-06-13
*
@version
1.0
*/
public
class
JSON
{
/** */
/**
* <p>
* 本方法用利用反射機制根據對像的域名獲得PO的getter方法名
* </p>
*
*
@param
o
* :po對像
*
@return
getter方法名
*/
private
synchronized
static
String[][] gFMs(Object o)
{
String[][] fms
=
null
;
if
(o
!=
null
)
{
Field flist[]
=
o.getClass().getDeclaredFields();
fms
=
new
String[flist.length][
2
];
for
(
int
i
=
0
; i
<
flist.length; i
++
)
{
fms[i]
=
JSON.assemblyFM(flist[i].toString());
}
}
return
fms;
}
/** */
/**
* <p>
* 根據域名組裝域名和方法名
* </p>
*
*
@param
sfield
*
@return
*/
private
synchronized
static
String[] assemblyFM(String sfield)
{
String[] fm
=
new
String[
2
];
int
len
=
sfield.length();
int
pointAt
=
sfield.lastIndexOf(
"
.
"
)
+
1
;
fm[
0
]
=
sfield.substring(pointAt, len);
fm[
1
]
=
String.valueOf(fm[
0
].charAt(
0
)).toUpperCase();
if
(fm[
0
].length()
>
1
)
{
fm[
1
]
+=
fm[
0
].substring(
1
, fm[
0
].length());
}
if
(sfield.indexOf(
"
boolean
"
)
>
0
)
{
fm[
1
]
=
"
is
"
+
fm[
1
];
}
else
{
fm[
1
]
=
"
get
"
+
fm[
1
];
}
fm[
1
]
+=
"
()
"
;
return
fm;
}
/** */
/**
* <p>po的方法里是否含有域的getter方法</p>
*
@param
fms
*
@param
method
*
@return
*/
private
static
String getFN(String[][] fms, String method)
{
if
(fms
!=
null
)
{
int
len
=
method.length();
int
pointAt
=
method.lastIndexOf(
"
.
"
)
+
1
;
String methodName
=
method.substring(pointAt, len);
for
(
int
i
=
0
; i
<
fms.length; i
++
)
{
if
(methodName.equals(fms[i][
1
]))
{
return
fms[i][
0
];
}
}
}
return
""
;
}
/** */
/**
* <p>得到單個po的json info</p>
*
@param
o
*
@return
*/
private
static
String getJsonInfo(Object o)
{
StringBuffer jsonInfo
=
new
StringBuffer(
"
{
"
);
String[][] fms
=
JSON.gFMs(o);
if
(fms
!=
null
)
{
String fn
=
""
;
String fv
=
""
;
Method[] methods
=
o.getClass().getDeclaredMethods();
for
(
int
i
=
0
; i
<
methods.length; i
++
)
{
fn
=
JSON.getFN(fms,methods[i].toString());
if
(fn
!=
null
&&
!
fn.equals(
""
))
{
jsonInfo.append(
"
\
""
);
jsonInfo.append(fn);
jsonInfo.append(
"
\
""
);
jsonInfo.append(
"
:
"
);
jsonInfo.append(
"
\
""
);
try
{
fv
=
(String) methods[i].invoke(o, (Object[])
null
);
fv
=
fv
==
null
?
""
: fv;
jsonInfo.append(fv);
}
catch
(Exception e)
{
jsonInfo.append(
""
);
}
jsonInfo.append(
"
\
"
,
"
);
}
}
}
int
len
=
jsonInfo.length();
String strEnd
=
jsonInfo.substring(len
-
1
, len);
if
(strEnd
!=
null
&&
strEnd.equals(
"
,
"
))
{
jsonInfo.delete(len
-
1
, len);
}
jsonInfo.append(
"
}
"
);
return
jsonInfo.toString();
}
/** */
/**
* <p>得到一個集合的json信息</p>
*
@param
list
*
@return
*/
public
static
String getJsonInfos(List
<
Object
>
list)
{
StringBuffer infos
=
new
StringBuffer();
infos.append(
"
[
"
);
if
(list
!=
null
)
{
Iterator
<
Object
>
itObj
=
list.iterator();
while
(itObj.hasNext())
{
infos.append(JSON.getJsonInfo(itObj.next()));
if
(itObj.hasNext())
{
infos.append(
"
,
"
);
}
}
}
infos.append(
"
]
"
);
return
infos.toString();
}
public
static
void
main(String[] args)
{
List
<
Object
>
list
=
new
ArrayList
<
Object
>
();
PersonPO po
=
new
PersonPO();
po.setAge(
"
25
"
);
po.setName(
"
惠萬鵬
"
);
po.setSex(
"
男
"
);
list.add(po);
po
=
new
PersonPO();
po.setAge(
"
27
"
);
po.setName(
"
惠帆
"
);
po.setSex(
"
女
"
);
list.add(po);
System.out.println(JSON.getJsonInfos(list));
}
}
posted on 2008-06-13 14:33
HUIKK
閱讀(378)
評論(0)
編輯
收藏
所屬分類:
Java
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
PP代碼生成器(四) 使用解決方案生成代碼
PP代碼生成器(三) 設計freemarker模板, 創建解決方案
PP代碼生成器(二) 解決方案, 生成任務, 輔助設計面板
PP代碼生成器(一) 簡介, 下載, 運行
PP持久層代碼生成器
eclipse maven
平衡二叉樹,java實現
數據結構復習
萬能分頁標簽
優化Servlet配置為web.xml瘦身
Powered by:
BlogJava
Copyright © HUIKK
主站蜘蛛池模板:
鄄城县
|
宜兰市
|
思茅市
|
鹤壁市
|
凯里市
|
桓台县
|
吉安市
|
博乐市
|
五大连池市
|
芜湖县
|
正阳县
|
理塘县
|
诸暨市
|
兰考县
|
衡阳市
|
新兴县
|
错那县
|
西充县
|
天门市
|
亳州市
|
寿阳县
|
湘阴县
|
沛县
|
南城县
|
灵璧县
|
文成县
|
广河县
|
武穴市
|
土默特左旗
|
股票
|
庆阳市
|
象州县
|
辽阳县
|
普格县
|
和龙市
|
泸西县
|
财经
|
容城县
|
安吉县
|
溧阳市
|
盱眙县
|