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()); }