json字符串和java对象的相互转化
来源:互联网 发布:手机淘宝删除差评链接 编辑:程序博客网 时间:2024/06/05 11:33
1、将字符串转化为java对象前,先检查字符串是否符合json格式
在线检查json格式
例子:
1)
、
字符串:{"id":0,"name":"team0","students":[{"id":0,"name":"student0"}]}符合json格式
2)
字符串:{"id":0,"name":"team0","students":"[{"id":0,"name":"student0"}]"}不符合json格式
2、json字符串和java对象相互的方法
2_1、使用com.google.gson
例子:
2_1_1、实体
package test.jsonobject;public class Student {private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Student() {super();// TODO Auto-generated constructor stub}public Student(int id, String name) {super();this.id = id;this.name = name;}@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + "]";}}
package test.jsonobject;import java.util.List;public class Team {private int id;private String name;private List<Student> students;public Team() {super();// TODO Auto-generated constructor stub}public Team(int id, String name, List<Student> students) {super();this.id = id;this.name = name;this.students = students;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public List<Student> getStudents() {return students;}public void setStudents(List<Student> students) {this.students = students;}@Overridepublic String toString() {return "Team [id=" + id + ", name=" + name + ", students=" + students+ "]";}}
2_1_2、测试类
package test.jsonobject;import java.util.ArrayList;import java.util.List;import com.google.gson.Gson;import com.google.gson.JsonArray;import com.google.gson.JsonElement;import com.google.gson.JsonObject;public class GoogleGjsonTest {public static void main(String[] args) {//对象到json字符串Student s0 = new Student(0,"student0");//Student s1 = new Student(0,"student0");List<Student> students = new ArrayList<>();students.add(s0);//students.add(s1);Team team = new Team(0,"team0",students);Gson gson = new Gson();String json = gson.toJson(team);System.out.println(json);//输出结果:{"id":0,"name":"team0","students":[{"id":0,"name":"student0"},{"id":0,"name":"student0"}]}//字符串转化为对象String json1 = "{\"id\":0,\"name\":\"team0\",\"students\":[{\"id\":0,\"name\":\"student0\"}]}";System.out.println("json1:"+json1);Team team1 = gson.fromJson(json1, Team.class);System.out.println("team1:"+team1);//字符串转化我JsonObjectJsonObject jsonObject0 = gson.fromJson(json1, JsonObject.class);System.out.println("jsonObject0:"+jsonObject0);JsonElement jsonElement0 = jsonObject0.get("id");System.out.println("jsonElement0:"+jsonElement0);JsonElement jsonElement1 = jsonObject0.get("name");System.out.println("jsonElement1:"+jsonElement1);JsonElement jsonElement2 = jsonObject0.get("students");System.out.println("jsonElement2:"+jsonElement2);JsonArray asJsonArray = jsonElement2.getAsJsonArray();System.out.println("asJsonArray:"+asJsonArray);String name = asJsonArray.get(0).getAsJsonObject().get("name").toString();System.out.println(name);/* * {"id":0,"name":"team0","students":"[{"id":0,"name":"student0"}]"} * 这个串根本不符合JSON格式,当然不能转化为对象 *//*String json2 = "{\"id\":0,\"name\":\"team0\",\"students\":\"[{\"id\":0,\"name\":\"student0\"}]\"}";System.out.println(json2);JsonObject fromJson = gson.fromJson(json2, JsonObject.class);System.out.println(fromJson);*//* Caused by: com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 40at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1505)at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:480)at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:403)at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:666)at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:642)at com.google.gson.Gson.fromJson(Gson.java:803)... 4 more */}}
2_2、使用net.sf.json
package test.jsonobject;import java.util.ArrayList;import java.util.List;import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class NetSfJsonTest {public static void main(String[] args) {//将对象转化为字符串Student s0 = new Student(0,"student0");List<Student> students = new ArrayList<>();students.add(s0);Team team = new Team(0,"team0",students);JSONObject fromObject = JSONObject.fromObject(team);System.out.println(fromObject.toString());//字符串转化为对象String json1 = "{\"id\":0,\"name\":\"team0\",\"students\":[{\"id\":0,\"name\":\"student0\"}]}";System.out.println("json1:"+json1);JSONObject fromObject2 = JSONObject.fromObject(json1);JSONArray jsonArray = fromObject2.getJSONArray("students");System.out.println(jsonArray);String name = (String) jsonArray.getJSONObject(0).get("name");System.out.println(name);Team bean = (Team) JSONObject.toBean(fromObject2, Team.class);System.out.println(bean);}}
0 0
- json字符串和java对象的相互转化
- json字符串和对象的相互转化
- json和java对象的相互转化
- java 对象 与json字符串的相互转化
- Java List或Map对象和json字符串数据的相互转化
- xml以及json 和Java对象的相互转化
- json字符串和json对象之间相互转化
- js中json字符串和json对象相互转化
- json和对象的相互转化
- java字符串和对象相互转化
- Json对象与Json字符串相互转化
- json对象与json字符串相互转化
- JS对象和JSON字符串相互转化总结
- 使用GSON将对象和json字符串相互转化
- JSON字符串和java对象的相互转换
- Json字符串与字典对象的相互转化
- js中对json对象和字符串的理解以及相互转化
- JavaScript对象,JSON对象,JSON字符串之间的相互转化大全{包含三者的具体介绍和定义}
- go圣经笔记--第一章
- python编写工具之基础——处理命令行参数
- Educational Codeforces Round 9 A B C D F
- 【XHProf】 安装介绍
- MFC下DLL/lib的调用
- json字符串和java对象的相互转化
- Hadoop Streaming高级编程
- 笔记本搭建wifi
- 7. Reverse Integer
- Hadoop pipes设计原理
- 最详细的图文教程,教你一点一点的上传你的APP程序打包上传到APP Store.
- 125. Valid Palindrome
- Hadoop pipes编程
- 北化oj 2104-程序改错 - 字符转换为数字