由于js对json的原生支持,所以现在很多项目的数据传输都喜欢用json。 怎么样把数据从java对象转化为json对象,有怎么把前台的json对象转化成java对象去处理?
这是开发中常要解决的问题。
json-lib是sourceforge的一个开源项目,常用来解决java json数据转换的问题。
下载地址是 http://sourceforge.net/projects/json-lib/
但是还需要一些依赖包才可以正常使用
commons-beanutils-1.8.0.jar
commons-collections-3.1.jar
commons-logging-1.1.1.jar
commons-logging-api-1.1.jar
ezmorph-1.0.6.jar
commons-lang-2.4.jar !!用3.x的jar无法运行的
由于官网的doc总是打不开 于是就看了下别人的blog
这里是java -》json 转化的几个小案例
Person.java javabean模型
package com.lzz.json;
public class Person {
private int id;
private String name;
private String addr;
public Person(){ }
public Person(int id, String name, String addr) {
super();
this.id = id;
this.name = name;
this.addr = addr;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
}
这里是几个操作的案例
SimpleJavaToJson.java
package com.lzz.json;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**ref http://ryxxlong.iteye.com/blog/583862
*json 支持原生的js
*使用eval 可以直接变为js对象
*JSON Java
*string <=> java.lang.String, java.lang.Character, char
*number <=> java.lang.Number, byte, short, int, long, float, double
*true|false <=> java.lang.Boolean, boolean
*null <=> null
*function <=> net.sf.json.JSONFunction
*array <=> net.sf.json.JSONArray (object, string, number, boolean, function)
*object <=> net.sf.json.JSONObject
*/
public class SimpleJavaToJson {
public static void main(String[] args) {
/*集合类型的从java 编程json对象*/
//arrayJson();
//listJson();
//stringJson();
/*map类型的处理*/
mapJson();
/*javabean的处理*/
beanJson();
}
//数组处理
public static void arrayJson(){
String arr[] ={"lzz","12","ee"} ;
JSONArray jarr = JSONArray.fromObject(arr);
System.out.println(jarr);
}
//List处理
public static void listJson(){
List<String> list = new ArrayList<String>();
list.add("apple");
list.add("orange");
list.add("money");
JSONArray jlist = JSONArray.fromObject(list);
System.out.println(jlist);
}
//字符串 形式 这里的字符串一定要符合json 集合的格式
public static void stringJson(){
String str = "['a','b','c',{d:'aa'}]";
JSONArray jarr = JSONArray.fromObject(str);
System.out.println(jarr);
}
//将map类型转化为json格式,生成的json对象也是没有顺序的
public static void mapJson(){
Map map = new HashMap();
map.put("name", "apple");
map.put("age", new Integer(20));
map.put("haoren",Boolean.TRUE);
map.put("arr", new String[]{"a","b","c"});
JSONObject jobj = JSONObject.fromObject(map);
System.out.println(jobj);
}
//javabean 的json转化
public static void beanJson(){
Person p = new Person(101, "apple", "China");
JSONObject jobj = JSONObject.fromObject(p);
System.out.println(jobj);
}
}