json详解和如何解析
(1)JSON(Java Script Object Notation)是一种轻量级的数据交换语言,以文本字符串为基础,且易于让人阅读。(注意:XML就是一个重量级的数据交换语言)
(2)和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度,
(3)JSON采用完全独立于任何程序语言的文本格式,使JSON成为理想的数据交换语言
(4)JSON就是一串字符串 只不过元素会使用特定的符号标注。
2、JSON语法
(1){} 双括号表示对象
(2)[] 中括号表示数组
(3)"" 双引号内是属性或值
(4): 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)
(5),逗号用来分隔属性或者对象
3、将一个对象构建成json数据
对象:属性:name=张三,sex=男,age= 20,score=78
(1)一个对象的json表示:
{“name”:”张三”,”sex”:”男”,”age”:20,”score”:78}
Student stu1 = new Student("张三", "男", 19, 78.5);
String js = JSON.toJSONString(stu1);
System.out.println(js);
1.com.google.gson.Gson用法
toJson(Object obj)方法:将对象obj序列化,转化为Json格式的字符串;
fromJson(String json, Class<T> classOfT)方法:反序列化,将Json格式的字符串转为指定类型的对象;
示例:
复制代码
import com.google.gson.Gson;
public class GSONTest {
public static void main(String[] args) {
Gson gson = new Gson();
//{"id":1001", "name":"JSON ", "description":"JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式"};
String json = "{\"id\":\"1001\", \"name\":\"JSON \", \"description\":\"JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式\"}";
Book book = gson.fromJson(json, Book.class);//将 json 格式的字符串转变为Book类对象
System.out.println(book);
System.out.println(gson.toJson(book));//将Book类对象转变为 json 字符串
}
static class Book {
private String id;
private String name;
private String description;
public Book(String id, String name, String description) {
this.id = id;
this.name = name;
this.description = description;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@Override
public String toString() {
return "Book{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", description='" + description + '\'' +
'}';
}
}
}
2.com.alibaba.fastjson.JSON用法
fastJson对于json格式字符串的解析常用的有三个类:
JSON:fastJson的入口类
JSONObject:fastJson提供的json对象,继承JSON。
JSONArray:用于解析json数组,继承JSON。
主要方法:
parseObject(String text, Class<T> clazz) 方法:将json格式字符串转化为指定类的对象
parseArray(String text, Class<T> clazz) 方法:将json格式字符串转化为指定类型的ArrayList集合
toJSONString(Object object) 方法:将对象序列化,转化为json格式字符串
示例:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.List;
public class FastJsonTest {
public static void main(String[] args) {
String json = "{\"id\":\"1001\", \"name\":\"JSON \", \"description\":\"JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式\"}";
Book book = JSON.parseObject(json, Book.class);
System.out.println(book);
System.out.println(JSON.toJSONString(book));
Book book1 = JSONObject.parseObject(json, Book.class);
System.out.println(book1);
System.out.println(JSONObject.toJSONString(book1));
//"["a","b","c","d","e"]";
String jsonArr = "[\"a\",\"b\",\"c\",\"d\",\"e\"]";
List<String> jsonArray = JSONArray.parseArray(jsonArr, String.class);
System.out.println(jsonArray);
System.out.println(JSONArray.toJSONString(jsonArray));
}
static class Book {
private String id;
private String name;
private String description;
public Book(String id, String name, String description) {
this.id = id;
this.name = name;
this.description = description;
}
public Book() {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@Override
public String toString() {
return "Book{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", description='" + description + '\'' +
'}';
}
}
}
原文链接:http://www.jxszl.com/biancheng/JAVA/81318.html