fastjson整理思路
此处把常用的一些方法,简单做个记录。
做自动化时,我们发送一个请求,返回的是一个字符串。首先我们要把这个字符串转换为json对象
parseObject()
:将 JSON 字符串解析为 Java 对象。
String json = "{\"person\":{\"name\":\"Ivy\",\"age\":60}}"; JSONObject jsonObject3 = JSON.parseObject(json); JSONObject personObject = jsonObject3.getJSONObject("person"); String name3 = personObject.getString("name"); System.out.println("Name: " + name3);
执行结果:Name: Ivy
=================================================================================
把字符串转为json对象后,我们需要获取里面的各种值
1、获取对象为字符串或者整数:
get(Object key)
: 获取 JSON 对象中的属性值
如果value的值是string,则使用jsonObject.getString(value)方法
如果value的值是int,则使用jsonObject.getIntValue(value)方法
JSONObject jsonObject = new JSONObject(); jsonObject.put("name", "Ian"); jsonObject.put("age", 60); String name = jsonObject.getString("name"); int age = jsonObject.getIntValue("age"); System.out.println("Name: " + name + ", Age: " + age);
执行结果:Name: Ian, Age: 60
getInteger(String key): 获取 JSON 对象中的整数属性值 public static void getIntegerExample() { JSONObject jsonObject = new JSONObject(); jsonObject.put("age", "80"); // 存储为字符串 int age = jsonObject.getInteger("age"); // 解析为整数 System.out.println("Age: " + age); } 34. getLong(String key) : 获取 JSON 对象中的长整数属性值 public static void getLongExample() { JSONObject jsonObject = new JSONObject(); jsonObject.put("age", "90"); // 存储为字符串 long age = jsonObject.getLong("age"); // 解析为长整数 System.out.println("Age: " + age); } 35. getShort(String key) : 获取 JSON 对象中的短整数属性值 public static void getShortExample() { JSONObject jsonObject = new JSONObject(); jsonObject.put("age", "100"); // 存储为字符串 short age = jsonObject.getShort("age"); // 解析为短整数 System.out.println("Age: " + age); } 36. getByte(String key) : 获取 JSON 对象中的字节属性值 public static void getByteExample() { JSONObject jsonObject = new JSONObject(); jsonObject.put("age", "110"); // 存储为字符串 byte age = jsonObject.getByte("age"); // 解析为字节 System.out.println("Age: " + age); } 37. getFloat(String key): 获取 JSON 对象中的浮点数属性值 public static void getFloatExample() { JSONObject jsonObject = new JSONObject(); jsonObject.put("height", "175.5"); // 存储为字符串 float height = jsonObject.getFloat("height"); // 解析为浮点数 System.out.println("Height: " + height); } 38. getDouble(String key) : 获取 JSON 对象中的双精度浮点数属性值 public static void getDoubleExample() { JSONObject jsonObject = new JSONObject(); jsonObject.put("weight", "65.5"); // 存储为字符串 double weight = jsonObject.getDouble("weight"); // 解析为双精度浮点数 System.out.println("Weight: " + weight); }
39. getBoolean(String key): 获取 JSON 对象中的布尔属性值 public static void getBooleanExample() { JSONObject jsonObject = new JSONObject(); jsonObject.put("isStudent", "true"); // 存储为字符串 boolean isStudent = jsonObject.getBoolean("isStudent"); // 解析为布尔值 System.out.println("Is Student: " + isStudent); } 40. getBigDecimal(String key): 获取 JSON 对象中的 BigDecimal 属性值 public static void getBigDecimalExample() { JSONObject jsonObject = new JSONObject(); jsonObject.put("price", "99.99"); // 存储为字符串 java.math.BigDecimal price = jsonObject.getBigDecimal("price"); // 解析为 BigDecimal System.out.println("Price: " + price); }
getJSONObject()
:获取 JSON 对象中的子对象。
String json = "{\"person\":{\"name\":\"Ivy\",\"age\":60}}"; JSONObject jsonObject = JSON.parseObject(json); JSONObject personObject = jsonObject.getJSONObject("person"); String name = personObject.getString("name"); System.out.println("Name: " + name);
执行结果:Name: Ivy
getJSONArray()
:获取 JSON 对象中的子数组。
String json = "{\"numbers\":[1, 2, 3, 4, 5]}"; JSONObject jsonObject = JSON.parseObject(json); JSONArray numbersArray = jsonObject.getJSONArray("numbers"); int sum = 0; for (Object num : numbersArray) { sum += (int) num; } System.out.println("Sum: " + sum);
执行结果:Sum: 15
size()
:获取 JSON 对象或数组的元素数量。
String json = "{\"names\":[\"Mary\",\"Nancy\",\"Oliver\"]}"; JSONObject jsonObject = JSON.parseObject(json); JSONArray namesArray = jsonObject.getJSONArray("names"); int size = namesArray.size(); System.out.println("Array Size: " + size);
执行结果:Array Size: 3
containsValue(Object value)
: 检查 JSON 对象是否包含指定的值
JSONObject jsonObject = new JSONObject(); jsonObject.put("name", "Bob"); jsonObject.put("age", 35); boolean containsName = jsonObject.containsValue("Bob"); boolean containsGender = jsonObject.containsValue("Male"); System.out.println("Contains Name: " + containsName); System.out.println("Contains Gender: " + containsGender);
执行结果:
Contains Name: true
Contains Gender: false
containsKey()
:检查 JSON 对象是否包含指定的键。
String json = "{\"name\":\"Peter\",\"age\":70}"; JSONObject jsonObject = JSON.parseObject(json); boolean containsAge = jsonObject.containsKey("age"); boolean containsEmail = jsonObject.containsKey("email"); System.out.println("Contains Age: " + containsAge); System.out.println("Contains Email: " + containsEmail);
执行结果:
Contains Age: true
Contains Email: false
示例:JSONArray相关
String a = "{\n" + " \"sites\": [\n" + " { \"name\":\"菜鸟教程\" , \"url\":\"www.runoob.com\" }, \n" + " { \"name\":\"google\" , \"url\":\"www.google.com\" }, \n" + " { \"name\":\"微博\" , \"url\":\"www.weibo.com\" }\n" + " ]\n" + "}"; JSONObject jsonObject = JSON.parseObject(a); JSONArray data = jsonObject.getJSONArray("sites"); System.out.println(data.size()); System.out.println(data.getString(0)); JSONObject dd = JSON.parseObject(data.getString(1)); System.out.println(dd.get("name")); System.out.println(dd.get("url"));
执行结果:
3
{"name":"菜鸟教程","url":"www.runoob.com"}
google
www.google.com