### JSON之间的转换详解 #### 一、JSON与Ajax联合使用中的JSON转换 在现代Web开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但独立于语言和平台。在与Ajax(Asynchronous JavaScript and XML)技术结合使用时,JSON因其简洁和高效而成为首选的数据交换格式。 1. **JSON.stringify() 方法** - **作用**:将一个JavaScript值(如数组或对象)转换为一个JSON字符串。 - **示例**: ```javascript let obj = { name: "张三", age: 25 }; let jsonStr = JSON.stringify(obj); console.log(jsonStr); // 输出: {"name":"张三","age":25} ``` 2. **JSON.parse() 方法** - **作用**:将一个JSON字符串转换为一个JavaScript值(如数组或对象)。 - **示例**: ```javascript let jsonStr = '{"name":"张三","age":25}'; let obj = JSON.parse(jsonStr); console.log(obj.name); // 输出: 张三 ``` 3. **使用Java进行JSON转换** 使用`net.sf.json-lib`库进行JSON转换: - **引入依赖**: ```xml <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency> ``` - **代码示例**: ```java import net.sf.json.JSONObject; import java.util.HashMap; public class JsonExample { public static void main(String[] args) { HashMap<String, String> map = new HashMap<>(); map.put("n", "123"); map.put("a", "456"); JSONObject jsonObject = JSONObject.fromObject(map); System.out.println(jsonObject); Object o = JSONObject.toBean(jsonObject, Map.class); System.out.println(o); } } ``` 4. **使用Fastjson进行JSON转换** - **引入依赖**: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.28</version> </dependency> ``` - **代码示例**: ```java import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import java.util.HashMap; import java.util.Map; public class FastJsonExample { public static void main(String[] args) throws Exception { // 使用原生方法创建JSON对象 JSONObject zhangsan = new JSONObject(); try { zhangsan.put("name", "张三"); zhangsan.put("age", 10); zhangsan.put("birthday", "1999-10-03"); zhangsan.put("major", new String[]{"12", "23"}); zhangsan.put("null", null); zhangsan.put("house", false); System.out.println(zhangsan.toString()); } catch (Exception e) { e.printStackTrace(); } // 使用HashMap创建JSON对象 HashMap<String, Object> zhangsanMap = new HashMap<>(); zhangsanMap.put("name", "张三"); zhangsanMap.put("age", 10); zhangsanMap.put("birthday", "1999-10-03"); zhangsanMap.put("major", new String[]{"12", "23"}); zhangsanMap.put("null", null); zhangsanMap.put("house", false); System.out.println(new JSONObject(zhangsanMap).toString()); // 使用实体类创建JSON对象 Student student = new Student(); student.setId(1); student.setAge(20); student.setName("张三"); System.out.println(JSON.toJSON(student)); // 对象转成字符串 String stuString = JSONObject.toJSONString(student); System.out.println(stuString); } } // 假设有一个Student实体类 class Student { private int id; private int age; private String name; // 省略getter和setter方法 } ``` #### 二、JSON转换实例 1. **使用Fastjson将JSON字符串转换为Java对象** - **代码示例**: ```java String studentString = "{\"id\":1,\"age\":20,\"name\":\"张三\"}"; Student student = JSON.parseObject(studentString, Student.class); System.out.println(student.getName()); // 输出: 张三 ``` 2. **使用Fastjson将Java对象转换为JSON字符串** - **代码示例**: ```java Student student = new Student(); student.setId(1); student.setAge(20); student.setName("张三"); String stuString = JSON.toJSONString(student); System.out.println(stuString); // 输出: {"id":1,"age":20,"name":"张三"} ``` 3. **使用Fastjson将HashMap转换为JSON字符串** - **代码示例**: ```java Map<String, Object> map = new HashMap<>(); map.put("name", "张三"); map.put("age", 20); String jsonString = JSON.toJSONString(map); System.out.println(jsonString); // 输出: {"name":"张三","age":20} ``` JSON在现代Web开发中扮演着重要的角色。无论是客户端还是服务端,熟练掌握JSON的使用和转换都是非常必要的技能。希望本文能帮助读者更好地理解和应用JSON相关的技术和工具。
- 粉丝: 163
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助