Json在前后台传输中,是使用最多的一种数据类型。json生成的方法有很多,自己只是很皮毛的知道点,用的时候,难免会蒙。现在整理下
第一种:
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
1、bean转为Json
User u = User(); u.setAge(22); u.setUsername("hzucmj"); u.setEnabled(); JSONObject json = JSONObject.fromObject(u); System.out.println(json.toString());
2、List转为Json
User u1 = User(); u1.setAge(22); u1.setUsername("hzucmj"); u1.setEnabled(); User u2 = User(); u2.setAge(20); u2.setUsername("ctf"); u2.setEnabled(); List<Object> list = ArrayList<Object>(); list.add(u1); list.add(u2); JSONArray json = JSONArray.fromObject(list); System.out.println(json.toString());
3、Map转为Json
HashMap<String, Comparable> map = HashMap<String, Comparable>(); map.put("name", "hzucmj"); map.put("age", 22); JSONObject json = JSONObject.fromObject(map); System.out.println(json.toString());
4.创建json对象
JSONObject jsonObj = new JSONObject(); jsonObj.put("id",1); jsonObj.put("name","张勇"); jsonObj.put("sex","男"); jsonObj.put("age",24); jsonObj.put("hobby",new String[]{"上网","游戏","跑步","音乐"});//这里就是一个String数组:String hobby[];(hobby:爱好) System.out.println("我创建的json:"+jsonObj.toString());
5.json对象转java对象
Student stud = (Student) JSONObject.toBean(jsonObj,Student.class); System.out.println(stud.getName());
6.创建json对象并添加属性
JSONObject json1 = new JSONObject(); json1.put("Int_att",25);//添加int型属性 json1.put("String_att","str");//添加string型属性 json1.put("Double_att",12.25);//添加double型属性 json1.put("Boolean_att",true);//添加boolean型属性 JSONObject json = new JSONObject(); json.put("年龄",25);//添加int型属性 json.put("名字","段鑫杰");//添加string型属性 //添加JSONObject型属性 JSONObject json2 = new JSONObject(); json2.put("id", 1); json2.put("name", "tom"); json1.put("JSONObject_att",json); //添加JSONArray型属性 JSONArray jsonArray = new JSONArray(); jsonArray.add("array0"); jsonArray.add("array1"); jsonArray.add("array2"); jsonArray.add("array3"); json1.put("JSONArray_att", jsonArray); System.out.println(json1.toString()); System.out.println("获取名字:"+json1.getJSONObject("JSONObject_att").get("名字")); System.out.println("JSONArray_att:"+json1.getJSONArray("JSONArray_att"));
第二种:
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
String jsonArray = JSONArray.toJSONString(list);
System.out.println("List转换json:"+jsonArray);
直接调用 JSONArray.toJSONString(list)就行,感觉参数基本上都适合。帅吧,毕竟是阿里巴巴嘛。
总结:两者都是基于JDK的轻量级的。菜鸟一枚,多谢大家指点!