ʹÓà XStream ÔÚ JavaBean Óë XML/JSON Ö®¼äÏ໥ת»»
XML ºÍ JSON Êǵ±½ñ³£ÓõÄÁ½ÖÖÊý¾ÝÃèÊöÓë´«ÊäµÄ¸ñʽ£¬ÌرðÊÇÉæ¼°µ½ JS ʱʹÓà JSON ÆÄΪƵ·±¡£×ÔÈ»£¬ÔÚ Java µÄÊÀ½çÀïÉÙ²»ÁËÍê³É JavaBean ÓëÕâÁ½ÖÖ¸ñʽÏ໥ת»»µÄ×é¼þ£¬ÄǾÍÊÇ XStream ºÍ JSON-lib¡£ÕâÀïÎÒ¼òµ¥¼ÇÏ XStream µÄÓ÷¨¡£
ÆäʵÏàÀàËÆµÄ¹¤¾ßÔçÒÑÓÐÖ®¡£Èç¹ûÓùý DWR µÄͬ־£¬Ò»¶¨ÓÐÓ¡Ïñ£¬DWR ½øÐÐÔ¶³Ì·½·¨µ÷ÓÃʱҲÄÜΪÄãÍê³É JavaBean ºÍ JSON ¸ñʽµÄË«Ïòת»»µÄ£¬ËùÒÀÀµµÄÊÇËüµÄ¸÷ÖÖ Converter¡£ÔÙÒªÊÇ¶Ô Struts1 µÄϸ½ÚÓÐËù×¢ÒâµÄ»°£¬Struts1 µÄ ActionServlet ÔÚ³õʼ»¯ struts-config.xml ʱÊÇͨ¹ý commons-digester À´Íê³É XML µ½ JavaBean ת»»µÄ¡£ÏàÓ¦µÄ Apache Ò²ÓÐÒ»¸ö commons-betwixt ʵÏÖÁË JavaBean µ½ XML µÄÉú³É¡£
¶øÎÒÕâÀïҪ˵µÄ XStream(http://xstream.codehaus.org) °Ñ JavaBean Óë XML/JSON ¼äµÄË«Ïòת»»Í³Í³ÊµÏÖÁË£¬¶ø JSON-lib ÔòÈçÆäÃû£¬¹¦ÄÜÌ«ÏÔ¼òªÁË¡£ÒªÊ¹Óà XStream£¬ÐèÏÂÔØµ½ xstream°ü£¬µ±Ç°°æ±¾ÊÇ 1.3.1¡£È»ºó°Ñ xstream-1.x.x.jar Ìí¼Óµ½ÏîÄ¿µÄ Classpath ÉÏ£¬¿É²»ÒÀÀµÓÚÆäËû°ü¡£ÔÚijЩÓÐÒªÇóʱºò²ÅÐèÒªÓõ½ lib Ŀ¼ÖÐµÄÆäËû°ü£¬ÏÂÃæ»áÌáµ½¡£
¼òµ¥ËµÃ÷ XStream µÄʹÓðɣ¬·ÖΪ JavaBean -> XML¡¢JavaBean -> JSON¡¢ XML -> JavaBean¡¢JSON -> JavaBean ¼¸²¿·ÖÄÚÈÝ¡£ÔÚ¿ªÊ¼Àý×Ó֮ǰ£¬Ïȶ¨ÒåÈý¸öÀà(¶¼ÔÚ com.unmi.model °üÖÐ)£º
public class Customer {
private int custId;
private String custName;
private List<Order> orders;
//setter/getter ºÍ¹¹Ôì·½·¨ÂÔ
}
public class Order {
private int orderId;
private String orderName;
private Product[] products;
//setter/getter ºÍ¹¹Ôì·½·¨ÂÔ
}
public class Product {
private int prodId;
private String prodName;
private double prodPrice;
//setter/getter ºÍ¹¹Ôì·½·¨ÂÔ
}
Customer/Order/Product£¬ËüÃÇÖ®¼äµÄ¹ØÏµ£¬ÒÀ´ÎÊÇÒ»¶Ô¶à¡¢Ò»¶Ô¶àµÄ£¬ÎªÑÝʾĿµÄ£¬·Ö±ðÓÃÁË List ºÍÊý×é×÷Ϊ¾ÛºÏÊôÐÔ¡£
1. JavaBean -> XML
public static void main(String[] args) {
//¹¹Ôì½Ó½üʵ¼ÊµÄ Customer ¶ÔÏó
Product p1 = new Product(1001,"µçÄÔ",4000);
Product p2 = new Product(1002,"¿Õµ÷",2000);
Product[] prods1 = new Product[]{p1,p2};
Order order1 =
Ïà¹ØÎĵµ£º
һЩ×Ö·ûÔÚ URL »ò XML ÎĵµÖÐʹÓÃʱÓÐÌØÊâµÄº¬Ò壬Òò´Ë±ØÐëÕë¶ÔÕâЩº¬Òå¶Ô×Ö·û×öÊʵ±±àÂëÒÔʹÆäÉúЧ¡£
URL ÖеÄÌØÊâ×Ö·û
ÔÚ URL ÉÏÖ´ÐеIJéѯÖУ¬ÌØÊâ×Ö·û±»Ö¸¶¨Îª %xx£¬ÆäÖÐ xx ÊÇ×Ö·ûµÄÊ®Áù½øÖÆÖµ¡£Ï±íÁгöÁËÕâÐ©ÌØÊâ×Ö·û²¢ÃèÊöÁËËüÃǵĺ¬Òå¡£Óйظü¶àÐÅÏ¢£¬Çë²Î¼û http://www.faqs.org/rfcs/rfc1738.html ÖÐµÄ RFC ......
Îĵµ¼°´úÂëÏÂÔØ£ºhttp://www.dingos.cn/index.php?topic=1899.0
½éÉÜ
µ±²Ëµ¥ÏîÊǾ³£¸Ä±äʱ£¬´ÓXMLÎĵµÖд´½¨TreeView²Åµ±ÊǷdz£ÓÐÓõġ£ÀýÈ磬ʹÓÃXML×÷ΪÊý¾Ý¿â´æ´¢¼Ç¼¡£
ÕâÀïÓиö¼òµ¥Ê¾Àý¡£ÒÔ·À»ìÏýÕâ¸öÀý×ӱȽϼòµ¥¡£
±³¾°
¶ÔXML¡¢TreeView¿Ø¼þµÄÓ¦Óã¬ÔÚVisual StudioÖÐÓÐÖúÓÚÀí½âÕâЩ²½Öè¡£
ʹÓôúÂë
×¢Ò⣠......
<?php
include('xml.php');
$data = XML_unserialize($xml);
?>
$xml¼´ÊÇxmlÎļþµÄÄÚÈÝ£¬$dataÊǽâÎö³öµÄÊý×飻
<?php
include('xml.php');
$xml = XML_serialize($data);
?>
ÒÔÉÏΪʹÓÃʵÀý£¬·Ö±ð½âÎöxmlÎĵµºÍÉú³Éxml¸ñʽµÄÊý¾Ý
xml.phpÔ´Âë
<?php
############################### ......
xml_parse½âÎöxmlÎļþʱºò£¬
ºÜÓпÉÄܲ»½ö½öµ÷ÓÃÒ»´Îcharacter_handler¡£
ËùÒÔÔÚ»ñµÃxml½ÚµãµÄÎı¾ÐÅÏ¢µÄʱºò£¬ÒªÓÃÁ¬½ÓÔËËã".="¡£
²Î¿¼ http://jp2.php.net/manual/ro/function.xml-set-character-data-handler.php
ken at positive-edge dot com
30-Jan-2002
01:20
the function handler is called ......