简介
fastjson.jar是阿里巴巴开发专门处理用于Java开发的包,可以方便的实现JSON对象与JavaBean对象的转换,实现JavaBean对象与Json字符串的转换,实现JSON对象与JSON字符串的转换。
//将Json字符串转化为Json对象
JSONObject obj=JSON.parseObject(jsonStr);//将json字符串转换为json对象导入依赖包:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.76</version>
</dependency>使用方式:
@Test
void test6(){
//通过原生生成的JSON格式生成
JSONObject object = new JSONObject();
object.put("name", "张三");
object.put("age", 18);
object.put("email", "abc@");
System.out.println("原生生成的JSON格式生成:" + object.toString());
//通过hashMap数据结构生成
HashMap<String, Object> objectHashMap = new HashMap<>();
objectHashMap.put("name", "张三");
objectHashMap.put("age", 18);
objectHashMap.put("email", "abc@");
System.out.println("hashMap数据结构生成:" + new JSONObject(objectHashMap).toString());
//通过实体生成
User user = new User();
user.setName("张三");
user.setAge(18);
user.setEmail("abc@");
System.out.println("实体生成Json格式:" + JSON.toJSON(user)); //生成Json格式
String jsonString = JSONObject.toJSONString(user); //对象转成String
System.out.println("对象转成String:" + jsonString);
//Json字符串转换成Json对象
String user1 = "{\"name\":\"张三\",\"age\":18,\"email\":\"abc.@\"}";
JSONObject jsonObject = JSONObject.parseObject(user1);
System.out.println("Json字符串转换成Json对象:" + jsonObject.toString());
//list对象转listJson
ArrayList<User> users = new ArrayList<>();
User user2 = new User();
user2.setName("张三");
user2.setAge(18);
user2.setEmail("abc@");
users.add(user2);
User user3 = new User();
user3.setName("李四");
user3.setAge(20);
user3.setEmail("abc@");
users.add(user3);
String string = JSON.toJSON(users).toString();
System.out.println("list转Json字符串:" + string);
JSONArray jsonArray = JSONObject.parseArray(string);
System.out.println("json字符串转listJson格式:" + jsonArray);
//JsonObject转实体对象
JSONObject object1 = new JSONObject();
object1.put("name", "张三");
object1.put("age", 18);
object1.put("email", "abc@");
User user4 = JSONObject.toJavaObject(object1, User.class);
System.out.println(user4);
}- JSONObject相当于json对象,所以该类中主要封装了各种get方法,通过"键:值"对中的键来获取其对应的值。且方法的输入参数几乎皆为String类型,这是因为json对象中,"键:值"对的键都是String类型的。
–> getString(String key)方法,该方法输入参数为String key(键),输出为String ,用于获取json对象中的字符串型数据。例如通过该方法获取 “name”:"bob"键值对中name这个键所对应的值bob。
–> getInteger(String key)方法,该方法获取json对象中的整型数据,例如获取"age:20"键值对中age对应的整型数值20.
–> JSONObject对应json对象,通过各种形式的get()方法可以获取json对象中的数据,也可利用诸如size(),isEmpty()等方法获取"键:值"对的个数和判断是否为空。其本质是通过实现Map接口并调用接口中的方法完成的。 - JSONArray代表json对象数组,json数组对象中存储的是一个个json对象,所以类中的方法主要用于直接操作json对象。比如这其中的add(),remove(),containsAll()方法,对应于json对象的添加,删除与判断。
–> getJSONObject(int index)方法,该方法用于获取json对象数组中指定位置的JSONObject对象,配合size()方法,可用于遍历json对象数组中的各个对象。通过以上两个方法,在配合for循环,即可实现json对象数组的遍历,当然JSONArray中也实现了迭代器方法来遍历,这和List的遍历极为相似。
















