- 简单的对象类型字符串解析
- 简单的数组类型字符串解析
- 对象与数组组合型字符串解析
Fastjson源码
wiki文档
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.HashMap;
import java.util.List;
public class JsonTest {
public static void main(String[] args) {
// 1. 简单的对象类型字符串解析
String json_obj = "{\"name\":\"小明\",\"age\":18,\"sex\":\"男\"}";
// json对象类型字符串转成json对象
JSONObject jsonObject = JSONObject.parseObject(json_obj);
// JSONObject继承Map<String, Object>,可通过key-value获取属性值
String name = jsonObject.getString("name");
int age = jsonObject.getIntValue("age");
// json对象转字符串
String jsonObject_str = jsonObject.toJSONString();
// String jsonObject_str = jsonObject.toString()
System.out.println("jsonObject_str:" + jsonObject_str);
System.out.println("name:" + name + "=======" + "age:" + age);
------------------------------------------------------------------------------------------------------------------------------------------------------------
// 2. 简单的数组型字符串解析
String json_array = "[{\"name\":\"小明\",\"age\":18,\"sex\":\"男\"},{\"name\":\"小红\",\"age\":16,\"sex\":\"女\"}]";
// json数组类型字符串转成json数组,JSONArray 继承List<Object>
JSONArray jsonArray = JSONArray.parseArray(json_array);
// json数组型字符串转list(新建一个user实体对象(get/set))
List<User> list = JSON.parseArray(json_array, User.class);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getAge());
}
// for (int i = 0; i < jsonArray.size(); i++) {
// JSONObject jsonArrayObject = jsonArray.getJSONObject(i);
// System.out.println("jsonArrayObject:" + jsonArrayObject);
// }
// json数组转字符串
String jsonArray_str = jsonArray.toJSONString();
// String jsonArray_str = JSONArray.toJSONString(jsonArray);
System.out.println("jsonArray_str:" + jsonArray_str);
------------------------------------------------------------------------------------------------------------------------------------------------------------
// 3. 对象与数组组合型字符串解析
String complex_json = "{\"teacherName\":\"王富贵\",\"teacherAge\":27,\"course\":{\"courseName\":\"computer\",\"code\":1001},\"students\":[{\"studentName\":\"小明\",\"studentAge\":20},{\"studentName\":\"小红\",\"studentAge\":18}]}";
// 该字符串是对象类型(包含对象及数组属性)
JSONObject complex_jsonobj = JSONObject.parseObject(complex_json);
// course 为对象属性
System.out.println(complex_jsonobj.get("course"));
// students 为数组属性
String student_jsonarray = complex_jsonobj.get("students").toString();
// HashMap可用对应的实体类替换
List<HashMap> student_list = JSON.parseArray(student_jsonarray, HashMap.class);
for (int j = 0; j < studengt_list.size(); j++) {
System.out.println(studengt_list.get(j).get("studentName"));
}
}
}