由于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); } }