由于系统中是用Json传输数据的,我觉得在这里有必要把Java和Flex处理Json数据分别介绍一下,今天我们先介绍Java处理Json数据。java里面已经有开源包实现了把一个Java对象转换为JSon对象, 它就是 http://www.json.org/java/, 各位读者可以在这个网站上面去下载jar包。首先创建一个自己的public的class,需要转换的类必须是public的,如果不是public的,这里转换不成功,我在写这篇文章的时候就遇到了这样的问题,百度了半天才解决,但是具体原因是什么,我没有深究,个人估计大概是非public的类在进行反射的时候有问题。
相关包的介绍:请大家在下载包的时候,一定要注意包的版本
下载地址:点击打开链接
MyBeanProperty.java
package com.jack.zhang.json;
/**
* @author Jack Zhang
* @version vb1.0
* @Email virgoboy2004@163.com
* @Date 2012-4-15
*/
public class MyBeanProperty
{
private String code = "code";
public String getCode()
{
return code;
}
public void setCode(String code)
{
this.code = code;
}
}
MyBean.java
package com.jack.zhang.json;
import net.sf.json.JSONFunction;
public class MyBean
{
private String name = "json";
private MyBeanProperty myBeanProperty = new MyBeanProperty();
private int pojoId = 1;
private char[] options = new char[] { 'a', 'f' };
private String func1 = "function(i){ return this.options[i]; }";
private JSONFunction func2 = new JSONFunction(
new String[] { "i" },
"return this.options[i];");
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getPojoId()
{
return pojoId;
}
public void setPojoId(int pojoId)
{
this.pojoId = pojoId;
}
public char[] getOptions()
{
return options;
}
public void setOptions(char[] options)
{
this.options = options;
}
public String getFunc1()
{
return func1;
}
public void setFunc1(String func1)
{
this.func1 = func1;
}
public JSONFunction getFunc2()
{
return func2;
}
public void setFunc2(JSONFunction func2)
{
this.func2 = func2;
}
public MyBeanProperty getMyBeanProperty()
{
return myBeanProperty;
}
public void setMyBeanProperty(MyBeanProperty myBeanProperty)
{
this.myBeanProperty = myBeanProperty;
}
}
Test.java
package com.jack.zhang.json;
import net.sf.json.JSONObject;
/**
* @author Jack Zhang
* @version vb1.0
* @Email virgoboy2004@163.com
* @Date 2012-4-15
*/
public class Test
{
public static void main(String[] args)
{
MyBean myBean = new MyBean();
JSONObject jsonObject = JSONObject.fromObject(myBean);
System.err.println(jsonObject);
}
}
输出:
{"func1":function(i){ return this.options[i]; },"func2":function(i){ return this.options[i]; },"myBeanProperty":{"code":"code"},"name":"json","options":["a","f"],"pojoId":1}