JSON笔记
fastjson
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.60</version>
</dependency>
JSON代表JSONObject和JSONArray的转化
【java对象转json字符串】String str1 = JSON.toJSONString(list);
【json字符串转java对象】Useruser1=JSON.parseObject(str2,User.class);
【java对象转json对象】JSONObject jsonObject1 = (JSONObject) JSON.toJSON(user2);
【josn对象转Java对象】User user = JSON.toJavaObject(jsonObject1, User.class);
JSONObject代表json对象
底层操作是由Map实现的
JSONObject jsonObject = new JSONObject();
jsonObject.put("key1", "value1");//JSONObject对象中添加键值对
jsonObject.put("key2", User.class);//JSONObject对象中添加键值
System.out.println(jsonObject.size()+"****"+jsonObject.get("key2"));
JSONArray代表json对象数组
底层操作是由List实现的
JSONArray jsonArray = new JSONArray();
jsonArray.add(new User("lisi","man"));
jsonArray.add(jsonObject);//将JSONObject对象添加到Json数组中
jsonArray.add(new Object());
jsonArray.add(new Integer(110));
System.out.println(jsonArray.size());
User u = (User) jsonArray.get(0);
System.out.println(u.getName());
完整代码
public class FastJsonTest {
@Test
public void test(){
//创建一个对象
User user1 = new User("xz1号", 3, "男");
User user2 = new User("xz2号", 3, "男");
User user3 = new User("xz3号", 3, "男");
User user4 = new User("xz4号", 3, "男");
List<User> list = new ArrayList<User>();
list.add(user1);
list.add(user2);
list.add(user3);
list.add(user4);
System.out.println("*******1Java对象 转 JSON字符串*******");
String str1 = JSON.toJSONString(list);
System.out.println(str1);
String str2 = JSON.toJSONString(user1);
System.out.println(str2);
System.out.println("\n****** 2JSON字符串 转 Java对象*******");
User jp_user1=JSON.parseObject(str2,User.class);
System.out.println(jp_user1);
System.out.println("\n****** 3Java对象 转 JSON对象(可以是任意对象:Object) ******");
JSONObject jsonObject1 = (JSONObject) JSON.toJSON(user2);
System.out.println(jsonObject1);
System.out.println(jsonObject1.getString("name"));
System.out.println("\n****** 4JSON对象 转 Java对象 ******");
User to_java_user = JSON.toJavaObject(jsonObject1, User.class);
System.out.println(to_java_user);
}
@Test
public void test2(){
JSONObject jsonObject = new JSONObject();
jsonObject.put("key1", "value1");//JSONObject对象中添加键值对
jsonObject.put("key2", User.class);//JSONObject对象中添加键值
System.out.println(jsonObject.size()+"****"+jsonObject.get("key2"));
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("k1", "v1");//JSONObject对象中添加键值对
jsonObject2.put("k2", "v2");//JSONObject对象中添加键值
JSONArray jsonArray = new JSONArray();
jsonArray.add(new User("lisi","man"));
jsonArray.add(new User("zhangsan","female"));
jsonArray.add(jsonObject);//将JSONObject对象添加到Json数组中
jsonArray.add(jsonObject2);//将JSONObject对象添加到Json数组中
jsonArray.add(new Object());
jsonArray.add(new Integer(110));
System.out.println("数组size="+jsonArray.size());
System.out.println("遍历数组元素:");
for (Object o : jsonArray) {
System.out.println(" "+o);
}
User u = (User) jsonArray.get(0);
System.out.println("获取数组第一个对象:"+ u.toString());
}
}
Jackson
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
public class JacksonTest {
@Test
public void test1() throws Exception {
ObjectMapper mapper = new ObjectMapper();
//创建一个对象
User user = new User("xz1号", 3, "男");
//将我们的对象解析成为json格式
String str = mapper.writeValueAsString(user);
System.out.println(str);
User user1 = mapper.readValue(str, User.class);
System.out.println(user1.getName());
}
@Test
public void test() throws Exception {
//创建一个jackson的对象映射器,用来解析数据
ObjectMapper mapper = new ObjectMapper();
//创建一个对象
User user1 = new User("xz1号", 3, "男");
User user2 = new User("xz2号", 3, "男");
User user3 = new User("xz3号", 3, "男");
User user4 = new User("xz4号", 3, "男");
List<User> list = new ArrayList<User>();
list.add(user1);
list.add(user2);
list.add(user3);
list.add(user4);
//将我们的对象解析成为json格式
String str = mapper.writeValueAsString(list);
System.out.println(str);
list = Arrays.asList(mapper.readValue(str, User[].class));
System.out.println(list.get(0).getName());
}
/*json字符串转换为list*/
@Test
public void test3() throws Exception {
String json = "[{\"name\":\"xz1号\",\"age\":3,\"sex\":\"男\"},{\"name\":\"xz2号\",\"age\":3,\"sex\":\"男\"},{\"name\":\"xz3号\",\"age\":3,\"sex\":\"男\"},{\"name\":\"xz4号\",\"age\":3,\"sex\":\"男\"}]\n";
ObjectMapper mapper = new ObjectMapper();
User[] usersArr = mapper.readValue(json, User[].class);
System.out.println(usersArr.length);
List<User> userList = Arrays.asList(mapper.readValue(json,User[].class));
System.out.println(userList.get(0).getName());
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY