21xrx.com
2025-04-23 05:17:07 Wednesday
文章检索 我的文章 写文章
Java原生JSON解析方法及应用案例
2023-06-15 14:52:49 深夜i     129     0
Java JSON 解析 生成 API 示例

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,已经成为了前后端数据交互的主流格式之一。Java中有很多第三方的JSON解析库,比如Gson和Jackson,但有些场景下我们只需要轻量级的JSON解析,这时候就可以使用Java原生的JSON API。

Java原生JSON API包含在JDK中的java.json包中,它提供了一组非常简单的类和方法,可以方便地将JSON转换为Java对象,也可以将Java对象转换为JSON。下面是一个简单的使用示例:

import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonReader;
public class JsonParseDemo {
  public static void main(String[] args) {
    String jsonStr = "{\"name\":\"Alice\",\"age\":18,\"hobbies\":[\"reading\",\"swimming\"]}";
    JsonReader reader = Json.createReader(new StringReader(jsonStr));
    JsonObject jsonObject = reader.readObject();
    reader.close();
    String name = jsonObject.getString("name");
    int age = jsonObject.getInt("age");
    JsonArray hobbies = jsonObject.getJsonArray("hobbies");
    System.out.println("Name: " + name);
    System.out.println("Age: " + age);
    System.out.println("Hobbies: " + hobbies);
  }
}

上面的示例中,我们使用了Json.createReader方法创建一个JsonReader对象,然后调用它的readObject方法将JSON字符串转换为JsonObject对象,之后就可以通过JsonObject对象的一系列方法来获取其中的字段值了。

除了将JSON字符串转换为对象外,我们还可以将Java对象转换为JSON字符串。Java原生JSON API提供了JsonValue和JsonStructure接口,它们可以表示JSON中的值和结构,包括字符串、数字、布尔值、数组和对象。下面是一个使用示例:

import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonWriter;
import java.io.StringWriter;
public class JsonGenerateDemo {
  public static void main(String[] args) {
    JsonObject jsonObject = Json.createObjectBuilder()
        .add("name", "Bob")
        .add("age", 20)
        .add("gender", "male")
        .build();
    StringWriter stringWriter = new StringWriter();
    JsonWriter jsonWriter = Json.createWriter(stringWriter);
    jsonWriter.writeObject(jsonObject);
    jsonWriter.close();
    String jsonStr = stringWriter.toString();
    System.out.println(jsonStr);
  }
}

上面的示例中,我们使用了Json.createObjectBuilder方法创建一个JsonObjectBuilder对象,然后使用它的一系列add方法逐个添加字段和值,最后调用它的build方法生成一个JsonObject对象。然后创建一个StringWriter对象和一个JsonWriter对象,将JsonObject对象转换为JSON字符串,并打印出来。

通过以上两个示例,可以看出Java原生JSON API非常简单易用。使用它可以快速灵活地进行JSON数据的解析和生成。

  
  

评论区