一.JSON简介:
1.JSON(javaScript Object Notation)是一种轻量级的数据交换格式;
2.JSON数据作为目前网络中主流的数据传输格式之一,应用十分广泛;
3.JSON可以表示的数据:
(1)对象:对象表示为”{}”扩起来的内容,数据结构为{key:value,key:value,....}的键值对的结构
例如:
{“name”:”zhangsan”,”age”:20}
(2)数组:数组表示为中括号” [ ]”括起来的内容,数据结构为[value,value,value,.........]或[{key:value,...},{key:value,...}]的单值结构
例如:
[{“name”:”zhangsan”,”age”:20},{“name”:”wangwu”,”age”:25}]
即:
{
“user”:
[
{“name”:”zhangsan”,”age”:20},
{“name”:”wangwu”,”age”:25}
]
}
二.JSON的官方解析
1.把装配好的JavaBean转换成JSON数据格式
2.把JSON转化成JavaBean对象
3.把集合转化为JSON字符串
4.把数组形式的JSON字符串转化为集合对象
例1(JSON官方解析):
(1)先引入所需jar包
(2)编写代码:
转化工具类(包含了4中转换的方法):
package org.json.official;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.bean.Student;
public class OfficeJSONUtil {
// 1.将java对象转换成JSON数据格式
public static String javaToJSON() {
Student stu = new Student(1, "王昭君", 89.5);
JSONObject jsonObj = new JSONObject(stu);
return jsonObj.toString();
}
// 2.将JSON转化为JavaBean对象
public static Student jsonToJavaBean() {
Student stu = null;
String jsonStr = "{‘id‘:2,‘name‘:‘杨玉环‘,‘score‘:95.6}";
try {
JSONObject jsonObj = new JSONObject(jsonStr);
int id = jsonObj.optInt("id");
String name = jsonObj.optString("name");
double score = jsonObj.optDouble("score");
stu = new Student(id, name, score);
} catch (JSONException e) {
e.printStackTrace();
}
return stu;
}
// 3. 把集合转化为JSON字符串
public static String listToJSON() {
List<Student> list = new ArrayList<Student>();
Collections.addAll(list, new Student(3, "西施", 93.6), new Student(4,
"貂蝉", 95.3), new Student(5, "平昭阳公主", 94.6));
JSONArray jsonArr = new JSONArray(list);
return jsonArr.toString();
}
// 4.把数组形式的JSON串转化为集合对象
public static List<Student> jsonArrayToList() {
List<Student> list = new ArrayList<Student>();
String jsonStr ="[{\"score\":93.6,\"name\":\"西施\",\"id\":3},{\"score\":95.3,\"name\":\"貂蝉\",\"id\":4},{\"score\":94.6,\"name\":\"平昭阳公主\",\"id\":5}]";
try {
JSONArray jsonArr=new JSONArray(jsonStr);
for(int i=0;i<jsonArr.length();i++){
JSONObject jsonObj=jsonArr.optJSONObject(i); //用于获取每一个对象
int id=jsonObj.optInt("id");
String name=jsonObj.optString("name");
double score=jsonObj.optDouble("score");
Student stu=new Student(id,name,score);
list.add(stu);
}
} catch (JSONException e) {
e.printStackTrace();
}
return list;
}
}
测试代码(主方法):
package org.json.official;
import java.util.List;
import org.json.bean.Student;
public class TestOfJson {
public static void main(String[] args) {
//1.JavaBean转化为JSON数据格式
String jsonStr= OfficeJSONUtil.javaToJSON();
System.out.println("1.JavaBean转化为JSON数据格式:"+jsonStr);
// 2.将JSON转化为JavaBean对象
Student stu=OfficeJSONUtil.jsonToJavaBean();
System.out.println("2.将JSON转化为JavaBean对象:"+stu);
// 3. 把集合转化为JSON字符串
String jsonStr1=OfficeJSONUtil.listToJSON();
System.out.println("3. 把集合转化为JSON字符串:"+jsonStr1);
//4.把数组形式的JSON串转化为集合对象
List<Student> list=OfficeJSONUtil.jsonArrayToList();
System.out.println("4.把数组形式的JSON串转化为集合对象:");
for(Student stu1:list){
System.out.println(stu1);
}
}
}
运行结果:
原文地址:http://blog.51cto.com/13501268/2129213
时间: 2024-10-10 12:49:51