1.JSON简介:
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)。JSON 是轻量级的文本数据交换格式,和XML一样也是纯文本的,具有独立于语言,自我描述性,更易理解等特点,具有层级结构(值中存在值)可通过 JavaScript 进行解析数据,可使用 AJAX 进行传输。
Object 对象在 JSON 中是用 { } 包含一系列无序的 Key-Value 键值对表示的,实际上此处的 Object 相当于 Java 中的 Map<String, Object>,而不是 Java 的 Class 。注意 Key 只能用 String 表示。
例如一个employee 对象是包含 3 个员工记录(对象)的数组表示如下:
{
"employees": [
{ "firstName":"李" , "lastName":"祥" },
{ "firstName":"胡" , "lastName":"洋" },
{ "firstName":"侯" , "lastName":"凯" }
]
}
2. JSON特点:
轻量级的文本数据交换格式;
独立于语言:JSON 使用 JavaScript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。如:PHP,JSP,.NET;
具有自我描述性,更易理解。
3.转义符
public static void test2() throws Exception {
User user = new User();
// 内容带有 \符号
String s = FileUtil.readString("f:\\2.txt");
user.name = s;
// json。toJSONString 转换后 \ 变成 \\
String json = JSON.toJSONString(user);
System.out.println(json);
// json 转换后 \\ 变成 \ 所以 user.name.equals(user2.name) true
User user2 = JSON.parseObject(json, User.class);
// json 转换后 \\ 变成 \
System.out.println(user2.name);
System.out.println("===============================");
// 所以 user.name.equals(user2.name) true
System.out.println(user.name.equals(user2.name));
// System.out.println("user.name len =="+s.length());
// System.out.println("user2.name len =="+user2.name.length());
}