package cn.itcast.caoke.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;public class JsonTest {
public static void main(String[] args) { Person person = new Person(); person.setName("caokePerson"); person.setAge(23); // 1.直接放json对象 // 直接new JSONObject 对象 ,像map一样赋值 JSONObject jsonObject = new JSONObject(); jsonObject.put("name", "caoke"); System.out.println("----直接放json对象----"+jsonObject.toString()); // ----直接放json对象----{"name":"caoke"} // 2. 对象转换为json //使用 JSONObject的静态对象方法,把对象直接转换为JSONObject jsonObject = JSONObject.fromObject(person); System.out.println("----对象转换为json----"+jsonObject.toString()); // ----对象转换为json----{"student":null,"name":"caokePerson","age":23} // 3.集合转换json // 用JSONArray的静态方法把集合转换为JsonArray List<Person> persons = new ArrayList<Person>(); Person person2 = new Person(); person2.setName("caokePerson2"); person2.setAge(23); persons.add(person); persons.add(person2); JSONArray jsonArray = JSONArray.fromObject(persons); System.out.println("----集合转换json----"+jsonArray.toString()); // ----集合转换json----[{"student":null,"name":"caokePerson","age":23},{"student":null,"name":"caokePerson2","age":23}] //4.数组转换json // 同样用JSONObject 来放数组 String arr[] = new String[]{"12","34","56"} ; JSONObject jsonObjectArr = new JSONObject(); jsonObjectArr.put("name", arr); System.out.println("----数组转换json对象----"+jsonObjectArr.toString()); //----数组转换json对象----{"name":["12","34","56"]} // 5.map 转换json // 可以用JSONObject直接来转换 Map<String, Person> map = new HashMap<String, Person>(); map.put("12", person); map.put("23", person2); JSONObject jsonmap = JSONObject.fromObject(map); System.out.println("----map转换json对象----"+jsonmap.toString()); //----map转换json对象----{"23":{"student":null,"name":"caokePerson2","age":23},"12":{"student":null,"name":"caokePerson","age":23}} // 试试list 是否可以直接转换 // 'object' is an array. Use JSONArray instead // 报错不可使用 // JSONObject jsonlist = JSONObject.fromObject(persons); // System.out.println("----map转换json对象----"+jsonlist.toString()); // 6.对象中有其他对象的json转换 Student student = new Student(); student.setAge(21); student.setName("liyong"); person.setStudent(student); JSONObject jsonPerStu = JSONObject.fromObject(person); System.out.println("----对象包含对象----"+jsonPerStu.toString()); // ----对象包含对象----{"student":{"name":"liyong","age":21},"name":"caokePerson","age":23} } }