package cn.itcast.caoke.json;java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;json
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}
}
}
对象