javascript对象生成

import java.util.Iterator;
import java.util.Map;

import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;


public class EscapeUtil {
 
 protected static final ToStringStyle JS_STYLE = new JSStyle();
 

 protected EscapeUtil() {
 }// End Of Constructor()
 

 public static String toJSObject(String data) {
  
  return "/"" + StringEscapeUtils.escapeJavaScript(data) + "/"";
  
 }// End Of Method(toJSObject)
 

 public static String toJSObject(String[] data) {
  
  StringBuffer jsString = new StringBuffer("new Array(");
  for (int i = 0; i < data.length; i++) {
   if (i > 0) jsString.append(", ");
   jsString.append(toJSObject(data[i]));
  }
  return jsString.append(")").toString();
  
 }// End Of Method(toJSObject)
 

 public static String toJSObject(Map data) {
  
  StringBuffer jsString = new StringBuffer("{");
  for (Iterator iter = data.keySet().iterator(); iter.hasNext();) {
   String fieldName = (String)iter.next();
   Object fieldValue = data.get(fieldName);
   
   if (jsString.length() > 1) jsString.append(", ");
   if (fieldValue instanceof String) {
    jsString.append(fieldName + ": " + toJSObject((String)fieldValue));
   } else if (fieldValue instanceof String[]) {
    jsString.append(fieldName + ": " + toJSObject((String[])fieldValue));
   } else if (fieldValue instanceof Map) {
    jsString.append(fieldName + ": " + toJSObject((Map)fieldValue));
   } else {
    jsString.append(fieldName + ": " + toJSObject(fieldValue));
   }
  }
  return jsString.append("}").toString();

 }// End Of Method(toJSObject)
 

 public static String toJSObject(Object data) {
  
  return ToStringBuilder.reflectionToString(data, JS_STYLE);
  
 }// End Of Method(toJSObject)
 

 protected static class JSStyle extends ToStringStyle {
  
  /** Field: serialVersionUID */
  private static final long serialVersionUID = 1L;
  

  private JSStyle() {
   
   setUseClassName(false);
   setUseIdentityHashCode(false);
   setContentStart("{");
   setContentEnd("}");
   setFieldSeparator(", ");
   setFieldNameValueSeparator(": ");
   setArrayStart("new Array(");
   setArrayEnd(")");
   setArraySeparator(", ");
   setNullText("null");
   
  }// End Of Constructor()
  
  /***************************************************************
   * appendDetail.<BR>
   * @see           JSStyle#appendDetail(StringBuffer, String, Object).
   **************************************************************/
  protected void appendDetail(StringBuffer buffer, String fieldName, Object value) {
   
   if (value instanceof String) {
    buffer.append("/"" + String.valueOf(value) + "/"");
   } else {
    super.appendDetail(buffer, fieldName, value);
   }
   
  }// End Of Method(appendDetail)
  
 }// End Of Class(JSStyle)
 
}// End Of Class(EscapeUtil)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值