JSON-RPC的另类用法

JSON-RPC的另类用法

JSON-RPC 大家都知道了,我比较反感JSON-RPC的客户端/服务器端的交互方式,个人认为还是DWR的框架似乎好一些,不过单纯比较后台代码的风格,似乎JSON-RPC的代码更好些---纯粹个人喜好。

   虽然不喜欢JSON-RPC的框架,不过对于JSON的javaObject--javascriptObject的转换代码倒是很欣赏,因此直接把JSON-RPC的这部分代码直接拿过来用,感觉也不错。当然,这已经跟AJAX关系不大了。

   1.将jsonrpc-1.0.jar包含在你的project的classpath中,
   2.写个简单的Util类,将你的java Object 序列化成javascript的字符串。

public class JSONUtil {
 public static final JSONSerializer se = new JSONSerializer();
 private static Logger log = Logger.getLogger(JSONUtil.class); 
 static
 {
  try
  {
   se.registerDefaultSerializers();
  }
  catch (Exception e)
  {
   log.error(e);
  }
 }
 
 public static String toJSON(Object obj)
 {
  try
  {
   SerializerState state = new SerializerState();
   Object retuObj = se.marshall(state, obj);
   String retuStr = retuObj.toString();
   //retuStr.replaceAll(" \\\"", " \\'");
   //log.debug("JSONStr:"+retuStr);
   return retuStr;
  }
  catch (Exception e){
   log.error(e);
   return obj.toString();
  }
 }


3.   客户端的jsp中只要简单的加上这段js
<script language=javascript>
 eval('jsObject = <%=JSONUtil.toJSON(javaObject)%>'+';');
</script>
javaObject是你自己的java类的实例,这样你就可以在js中直接操作jsObject 这个js对象了。



你可能感兴趣的:(JSON-RPC的另类用法)