Java函数如何实现Json字符串的解析和构造?
在Java中,我们可以使用第三方库或者JDK自带的工具类来实现Json字符串的解析和构造。
1. 使用第三方库
目前比较常用的Json库有Gson、Jackson、FastJson等等。
以Gson为例,我们可以使用如下代码来解析一个Json字符串:
String jsonStr = "{\"name\":\"Tom\",\"age\":18}";
Gson gson = new Gson();
Person person = gson.fromJson(jsonStr, Person.class);
System.out.println(person.getName());
以上代码中,我们首先定义了一个Json字符串,并且使用Gson创建了一个实例。接下来,我们调用了gson.fromJson方法来解析Json字符串,并且将结果映射到一个Person类中。最后,输出了Person对象的名字。
同样地,我们可以使用Gson的toJson方法来构造一个Json字符串:
Person person = new Person("Tom", 18);
Gson gson = new Gson();
String jsonStr = gson.toJson(person);
System.out.println(jsonStr);
以上代码中,我们首先创建了一个Person对象,然后使用Gson创建了一个实例。接下来,调用了gson.toJson方法来将Person对象转换成Json字符串,并且输出了Json字符串。
2. 使用JDK自带的工具类
JDK自带了一个Json工具类,名为json,我们可以使用该工具类来实现Json字符串的解析和构造。
以解析Json字符串为例,我们可以使用如下代码:
String jsonStr = "{\"name\":\"Tom\",\"age\":18}";
JsonObject jsonObject = Json.createReader(new StringReader(jsonStr)).readObject();
System.out.println(jsonObject.getString("name"));
以上代码中,我们首先定义了一个Json字符串,接着创建了一个StringReader对象,并且使用Json.createReader方法将其转换为一个JsonObject对象。最后,我们可以根据JsonObject的键值对来获取相应的值。
同样地,使用JDK自带的Json工具类我们也可以构造一个Json字符串:
JsonObject jsonObject = Json.createObjectBuilder()
.add("name", "Tom")
.add("age", 18)
.build();
StringWriter writer = new StringWriter();
JsonWriter jsonWriter = Json.createWriter(writer);
jsonWriter.writeObject(jsonObject);
System.out.println(writer.toString());
以上代码中,我们首先使用Json.createObjectBuilder方法创建了一个JsonObject,并且使用add方法为其添加键值对。然后,我们创建了一个StringWriter对象和一个JsonWriter对象,并且调用了jsonWriter.writeObject方法将JsonObject对象写入到StringWriter中,最后输出了字符串。
总结来说,无论是使用第三方库还是JDK自带的工具类,都可以实现Json字符串的解析和构造。不同的工具类有不同的优缺点,根据实际需求进行选择即可。
