java用JSONObject生成json

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的轻量级的。菜鸟一枚,多谢大家指点!

 
原文地址:https://www.cnblogs.com/xinxin-ting/p/8561701.html