JSONObject使用

  • json对象转字符串
public static void convertObject() {
        
        Student stu=new Student();
        stu.setName("JSON");
        stu.setAge("23");
        stu.setAddress("北京市西城区");

        //1、使用JSONObject
        JSONObject json = JSONObject.fromObject(stu);
        //2、使用JSONArray
        JSONArray array=JSONArray.fromObject(stu);
        
        String strJson=json.toString();
        String strArray=array.toString();
        
        System.out.println("strJson:"+strJson);
        System.out.println("strArray:"+strArray);
    }

结果:

strJson:{"address":"北京市西城区","age":"23","name":"JSON"}
strArray:[{"address":"北京市西城区","age":"23","name":"JSON"}]
  • json字符串转java对象
public static void jsonStrToJava(){
      //定义两种不同格式的字符串
      String objectStr="{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市西城区\"}";
      String arrayStr="[{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市西城区\"}]";
  
      //1、使用JSONObject
      JSONObject jsonObject=JSONObject.fromObject(objectStr);
      Student stu=(Student)JSONObject.toBean(jsonObject, Student.class);
      
      //2、使用JSONArray
      JSONArray jsonArray=JSONArray.fromObject(arrayStr);
      //获得jsonArray的第一个元素
      Object o=jsonArray.get(0);
      JSONObject jsonObject2=JSONObject.fromObject(o);
      Student stu2=(Student)JSONObject.toBean(jsonObject2, Student.class);
      System.out.println("stu:"+stu);
      System.out.println("stu2:"+stu2);
      
  }

结果:

stu:Student [name=JSON, age=24, address=北京市西城区]
stu2:Student [name=JSON, age=24, address=北京市西城区]
  • list转json字符串
public static void listToJSON(){
       Student stu=new Student();
       stu.setName("JSON");
       stu.setAge("23");
       stu.setAddress("北京市海淀区");
       List<Student> lists=new ArrayList<Student>();
       lists.add(stu);
       //1、使用JSONObject
       //JSONObject listObject=JSONObject.fromObject(lists);
       //2、使用JSONArray
       JSONArray listArray=JSONArray.fromObject(lists);
       
       //System.out.println("listObject:"+listObject.toString());
       System.out.println("listArray:"+listArray.toString());
       
   }

结果:

//注释部分结果,报错
Exception in thread "main" net.sf.json.JSONException: 'object' is an array. Use JSONArray instead
//以下是正确部分写法
listArray:[{"address":"北京市海淀区","age":"23","name":"JSON"}]
  • json字符串转list
public static void jsonToList(){
       String arrayStr="[{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市西城区\"}]";
       //转化为list
               List<Student> list2=(List<Student>)JSONArray.toList(JSONArray.fromObject(arrayStr), Student.class);
               
               for (Student stu : list2) {
                   System.out.println(stu);
               }
               //转化为数组
               Student[] ss =(Student[])JSONArray.toArray(JSONArray.fromObject(arrayStr),Student.class);
               for (Student student : ss) {
                   System.out.println(student);
               }
       
       
   }

结果:

Student [name=JSON, age=24, address=北京市西城区]
Student [name=JSON, age=24, address=北京市西城区]
  • map转json字符串
public static void mapToJSON(){
       Student stu=new Student();
       stu.setName("JSON");
       stu.setAge("23");
       stu.setAddress("中国上海");
       Map<String,Student> map=new HashMap<String,Student>();
       map.put("first", stu);
       
       //1、JSONObject
       JSONObject mapObject=JSONObject.fromObject(map);
       System.out.println("mapObject"+mapObject.toString());
       
       //2、JSONArray
       JSONArray mapArray=JSONArray.fromObject(map);
       System.out.println("mapArray:"+mapArray.toString());
   }

结果:

mapObject{"first":{"address":"中国上海","age":"23","name":"JSON"}}
mapArray:[{"first":{"address":"中国上海","age":"23","name":"JSON"}}]
  • json字符串转map
public static void jsonToMap(){
       String strObject="{\"first\":{\"address\":\"中国上海\",\"age\":\"23\",\"name\":\"JSON\"}}";
       
       //JSONObject
       JSONObject jsonObject=JSONObject.fromObject(strObject);
       Map map=new HashMap();
       map.put("first", Student.class);

       //使用了toBean方法,需要三个参数 
       MyBean my=(MyBean)JSONObject.toBean(jsonObject, MyBean.class, map);
       System.out.println(my.getFirst());
       
   }

结果:

Student [name=JSON, age=23, address=中国上海]

猜你喜欢

转载自blog.csdn.net/qq_26869339/article/details/87744644