一、爲什麼要使用JSONArray和JSONObject
1、後臺 --》前臺 可以把java對象和集合轉化成json字符串格式,這樣在前臺的ajax方法中可以直接轉化成json對象使用 ,從後臺向前臺傳值
2、前臺 --》使用JSON.stringify(mdses)方法把js對象,數組,轉化成json字符串 ,後臺使用JSONArray或JSONObject 轉化成 java對象或集合
有助於前端參數傳遞到後端,和後端取值y
3、json現在以成爲大多數據傳輸的載體
二、後臺解析前臺ajax提交數據,使用較少一般都把list 或map轉化爲json形式的字符串傳值到前臺的ajax中:
//根據接收的json字符串來解析字符串中所包含的數據和數據對象
@Test
public void parsJsonFromFront(){
//接收到的json
String result = "[{\"username\": \"your name\", \"user_json\": {\"username\": \"your name\", \"nickname\": \"your nickname\"}}]";
//根據字符串陳
//根據字符串生成JSON對象
//如果是數組的形式 就使用 JSONArray.fromObject(result) 轉化爲JSONArray 對象
//如果是json對象 就是使用JSONObject.fromObject(result) 轉化爲JSONObject 對象
JSONArray resultArray = JSONArray.fromObject(result);
JSONObject jsonObject = resultArray.getJSONObject(0);
JSONObject user_json = jsonObject.getJSONObject("user_json");
//根據key值取值
String username = user_json.getString("username");
String nickname = user_json.getString("nickname");
System.out.println("username =" + username + ":" + "nickname = " + nickname);
//console : username =your name:nickname = your nickname
}
三 、後臺轉化list 或map轉化爲json形式的字符串傳值到前臺的ajax中
user bean
public class User {
private String name;
private Adress adress;
private List<String> students;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Adress getAdress() {
return adress;
}
public void setAdress(Adress adress) {
this.adress = adress;
}
public List<String> getStudents() {
return students;
}
public void setStudents(List<String> students) {
this.students = students;
}
public User(String name, Adress adress, List<String> students) {
super();
this.name = name;
this.adress = adress;
this.students = students;
}
public User() {
super();
}
}
public class Adress {
private String streetName;
private String district;
public String getStreetName() {
return streetName;
}
public void setStreetName(String streetName) {
this.streetName = streetName;
}
public String getDistrict() {
return district;
}
public void setDistrict(String district) {
this.district = district;
}
public Adress(String streetName, String district) {
super();
this.streetName = streetName;
this.district = district;
}
public Adress() {
super();
// TODO Auto-generated constructor stub
}
}
1)bean to json
@Test
public void beanToJson(){
List list = new ArrayList();
list.add( "xiaowang" );
list.add( "xiaohua" );
Adress adress = new Adress("streetName", "district");
JSONObject jsonObject = JSONObject.fromObject(new User("name", adress, list));
System.out.println(jsonObject.toString());
//console :{"adress":{"district":"district","streetName":"streetName"},"name":"name","students":["xiaowang","xiaohua"]}
}
2)
@Test
public void list2Json(){
List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray.toString());
}
public Map getMap(){
//聲明一個Hash對象並添加數據
Map params = new HashMap();
params.put("username", "username");
params.put("user_json", "user");
return params;
}
@Test
public void map2Json(){
Map map = getMap();
Map map1 = getMap();
List list = new ArrayList();
list.add(map);
list.add(map1);
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println("jsonArray--->" + jsonArray.toString());
JSONArray jsonArray1 = JSONArray.fromObject(map);
System.out.println("jsonArray1--->" + jsonArray1.toString());
}
完整:
public class SimpleExample {
@Test
public void list2Json(){
List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray.toString());
}
public Map getMap(){
//聲明一個Hash對象並添加數據
Map params = new HashMap();
params.put("username", "username");
params.put("user_json", "user");
return params;
}
@Test
public void map2Json(){
Map map = getMap();
Map map1 = getMap();
List list = new ArrayList();
list.add(map);
list.add(map1);
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println("jsonArray--->" + jsonArray.toString());
JSONArray jsonArray1 = JSONArray.fromObject(map);
System.out.println("jsonArray1--->" + jsonArray1.toString());
}
//根據接收的json字符串來解析字符串中所包含的數據和數據對象
@Test
public void parsJsonFromFront(){
//接收到的json
String result = "[{\"username\": \"your name\", \"user_json\": {\"username\": \"your name\", \"nickname\": \"your nickname\"}}]";
//根據字符串陳
//根據字符串生成JSON對象
//如果是數組的形式 就使用 JSONArray.fromObject(result) 轉化爲JSONArray 對象
//如果是json對象 就是使用JSONObject.fromObject(result) 轉化爲JSONObject 對象
JSONArray resultArray = JSONArray.fromObject(result);
JSONObject jsonObject = resultArray.getJSONObject(0);
JSONObject user_json = jsonObject.getJSONObject("user_json");
//根據key值取值
String username = user_json.getString("username");
String nickname = user_json.getString("nickname");
System.out.println("username =" + username + ":" + "nickname = " + nickname);
//console : username =your name:nickname = your nickname
}
@Test
public void beanToJson(){
List list = new ArrayList();
list.add( "xiaowang" );
list.add( "xiaohua" );
Adress adress = new Adress("streetName", "district");
JSONObject jsonObject = JSONObject.fromObject(new User("name", adress, list));
System.out.println(jsonObject.toString());
//console :{"adress":{"district":"district","streetName":"streetName"},"name":"name","students":["xiaowang","xiaohua"]}
}
}
相關依賴jar下載:http://download.csdn.net/detail/hao007cn/8995465