1.概述 json字符串、json对象、java对象间的相互转换
1.1转换图

1.2 转换表
| 字符串 | JSONObject.parseObject(json字符串, java类型); | java对象 |
| JSONObject.parseObject(json字符串) | json对象 | |
| java对象 | (JSONObject) JSONObject.toJSON(java对象) | |
| JSONObject.toJSONString(java对象) | 字符串 | |
| json对象 | json对象.toJSONString(); | |
| JSONObject.toJavaObject(json对象, java类型); | java对象 |
2. 代码
package test.java.xmltest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class JsonTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("json测试");
JsonTest jt = new JsonTest();
// jt.fun();
jt.strToJObject();
jt.strToObject();
jt.objectToJObject();
jt.objectToJStr();
jt.jObjectToStr();
jt.jObjectToObject();
jt.testJsonArray();
jt.testJsonArray2();
}
private void strToJObject() {
String stuString = "{\"age\":2,\"name\":\"公众号编程大道\",\"sex\":\"m\"}";
// JSON字符串转换成JSON对象
JSONObject jsonObject1 = JSONObject.parseObject(stuString);
System.out.println("JSON字符串转换成JSON对象\n" + jsonObject1);
}
private void strToObject() {
String stuString = "{\"age\":2,\"name\":\"公众号编程大道\",\"sex\":\"m\"}";
// JSON字符串转换成Java对象
Student student1 = JSONObject.parseObject(stuString, Student.class);
System.out.println("JSON字符串转换成Java对象\n" + student1);
}
private void objectToJObject() {
Student stu = new Student("公众号编程大道", "m", 2);
//Java对象转化为JSON对象
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(stu);
System.out.println("Java对象转化为JSON对象\n" + jsonObject);
}
private void objectToJStr() {
Student stu = new Student("公众号编程大道", "m", 2);
//Java对象转换成JSON字符串
String stuString = JSONObject.toJSONString(stu);
System.out.println("Java对象转换成JSON字符串\n" + stuString);
}
private void jObjectToStr() {
Student stu = new Student("公众号编程大道", "m", 2);
//先转成JSON对象
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(stu);
//JSON对象转换为JSON字符串
String jsonString = jsonObject.toJSONString();
System.out.println("JSON对象转换为JSON字符串\n" + jsonString);
}
private void jObjectToObject() {
Student stu = new Student("公众号编程大道", "m", 2);
//先转成JSON对象
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(stu);
//JSON对象转换成Java对象
Student student = JSONObject.toJavaObject(jsonObject, Student.class);
System.out.println("JSON对象转换成Java对象\n" + student);
}
private void testJsonArray() {
System.out.println("JSON数组测试1");
String s = "[{\"id\":\"17051801\",\"name\":\"lucy\"},{\"id\":\"17051802\",\"name\":\"peter\"}]";
JSONArray array = JSONObject.parseArray(s);
for (int i = 0; i < array.size(); i++) {
//JSONArray中的数据转换为String类型需要在外边加"";不然会报出类型强转异常!
String str = array.get(i)+"";
JSONObject object = JSON.parseObject(str);
System.out.println(object.get("name"));
}
}
private void testJsonArray2() {
System.out.println("JSON数组测试2");
String s = "[{\"id\":\"17051801\",\"name\":\"lucy\"},{\"id\":\"17051802\",\"name\":\"peter\"}]";
JSONArray array = JSONObject.parseArray(s);
for (int i = 0; i < array.size(); i++) {
//JSONArray中的数据转换为String类型需要在外边加"";不然会报出类型强转异常!
JSONObject object = array.getJSONObject(i);
System.out.println(object.get("name"));
}
}
}
class Student {
public Student(String name,String sex,int age) {
this.name = name;
this.sex = sex;
this.age = age;
}
public Student() {
}
public int age;
public String name;
public String sex;
public String toString() {
return "age:"+age+"name:"+name+"sex:"+sex;
}
}
3.运行效果
json测试
JSON字符串转换成JSON对象
{"age":2,"name":"公众号编程大道","sex":"m"}
JSON字符串转换成Java对象
age:2name:公众号编程大道sex:m
Java对象转化为JSON对象
{"age":2,"name":"公众号编程大道","sex":"m"}
Java对象转换成JSON字符串
{"age":2,"name":"公众号编程大道","sex":"m"}
JSON对象转换为JSON字符串
{"age":2,"name":"公众号编程大道","sex":"m"}
JSON对象转换成Java对象
age:2name:公众号编程大道sex:m
JSON数组测试1
lucy
peter
JSON数组测试2
lucy
peter
378

被折叠的 条评论
为什么被折叠?



