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}
}
}
對象