Dengan perkembangan teknologi Internet, aplikasi Web menjadi semakin kompleks, dan banyak aplikasi memerlukan pertukaran data dalam format JSON. Dalam pembangunan Java, cara biasa untuk memproses data JSON ialah menggunakan perpustakaan Jackson. Artikel ini akan memperkenalkan proses menggunakan perpustakaan Jackson untuk memproses data JSON.
Apakah Jackson?
Jackson ialah perpustakaan Java untuk memproses data format JSON. Ia menyediakan cara mudah untuk mensirikan objek Java ke dalam format JSON dan menyahsiri data JSON kembali ke objek Java. Ia juga menyokong pemetaan strim data JSON ke objek Java dan pemetaan objek Java ke strim data JSON.
Sirikan objek Java ke JSON menggunakan perpustakaan Jackson
Pertama, kita perlu mencipta objek Java dan mentakrifkan nama medan menggunakan anotasi. Sebagai contoh, kami mencipta objek Java yang dipanggil Person:
class Person { @JsonProperty("name") private String mName; @JsonProperty("age") private int mAge; public Person(String name, int age) { mName = name; mAge = age; } // 省略 Getter 和 Setter 方法 }
Dalam kod di atas, kami mentakrifkan nama JSON bagi medan "nama" dan "umur" menggunakan anotasi @JsonProperty. Seterusnya, kita boleh menggunakan kelas ObjectMapper untuk menyerikan objek Java ke dalam format JSON:
ObjectMapper mapper = new ObjectMapper(); Person person = new Person("John Smith", 30); String jsonString = mapper.writeValueAsString(person);
Dalam kod di atas, kami mencipta objek ObjectMapper dan menukar objek Person menjadi rentetan berformat JSON. Output sepatutnya kelihatan seperti ini:
{"name":"John Smith","age":30}
Menyokong pesirisian medan atas permintaan
Pustaka Jackson juga menyokong pengumpulan medan ke dalam paparan melalui anotasi @JsonView. Ini membenarkan hanya satu set medan dipaparkan dalam setiap paparan. Berikut ialah contoh:
class Views { static class Public {} static class Internal extends Public {} } class Person { @JsonProperty("name") @JsonView(Views.Public.class) private String mName; @JsonProperty("age") @JsonView(Views.Internal.class) private int mAge; public Person(String name, int age) { mName = name; mAge = age; } // 省略 Getter 和 Setter 方法 }
Dalam kod di atas, kami mula-mula mentakrifkan dua pandangan: Awam dan Dalaman. Medan "nama" objek Orang dikaitkan dengan paparan Awam dan medan "umur" dikaitkan dengan paparan Dalaman. Seterusnya, kita boleh menggunakan kelas ObjectMapper untuk mensirikan objek Java yang mengandungi paparan khusus ke dalam format JSON:
ObjectMapper mapper = new ObjectMapper(); Person person = new Person("John Smith", 30); String jsonStringPublic = mapper.writerWithView(Views.Public.class).writeValueAsString(person); String jsonStringInternal = mapper.writerWithView(Views.Internal.class).writeValueAsString(person);
Dalam kod di atas, kami menyerikan objek Person ke dalam format JSON yang mengandungi paparan Awam dan rentetan paparan Dalaman . Outputnya hendaklah seperti berikut:
Paparan awam:
{"name":"John Smith"}
Paparan dalaman:
{"name":"John Smith","age":30}
Gunakan perpustakaan Jackson untuk menyahsiri data JSON ke dalam objek Java
Untuk Untuk menyahsiri data JSON kembali ke objek Java, mula-mula kita perlu mencipta objek Java dan kemudian menggunakan kelas ObjectMapper untuk memetakan aliran data JSON ke objek:
ObjectMapper mapper = new ObjectMapper(); Person person = mapper.readValue(jsonString, Person.class);
Dalam kod di atas, kami mencipta Objek ObjectMapper , dan tukar data JSON kepada objek Orang. Ambil perhatian bahawa rentetan JSON mesti sepadan dengan nama medan objek Orang, jika tidak pengecualian akan dilemparkan.
Gunakan perpustakaan Jackson untuk memproses strim data JSON
Jackson juga menyokong pemetaan strim data JSON ke objek Java untuk memproses fail JSON yang besar baris demi baris. Berikut ialah contoh:
ObjectMapper mapper = new ObjectMapper(); JsonFactory factory = mapper.getFactory(); JsonParser parser = factory.createParser(new File("testdata.json")); while (parser.nextToken() != null) { if (parser.getCurrentToken() == JsonToken.START_OBJECT) { Person person = mapper.readValue(parser, Person.class); // 处理Person对象 } }
Dalam kod di atas, kami mula-mula mencipta objek ObjectMapper dan objek JsonFactory. Kemudian, kami menggunakan objek JsonFactory untuk mencipta objek JsonParser, yang bertanggungjawab untuk membaca aliran data fail JSON baris demi baris. Seterusnya, kita boleh menggunakan kaedah ObjectMapper.readValue() untuk memetakan aliran data JSON baris semasa ke dalam objek Person.
Ringkasan
Menggunakan perpustakaan Jackson untuk memproses data JSON ialah kaedah yang sangat mudah. Jackson menyediakan banyak pilihan dan konfigurasi yang membolehkan kami mensirikan objek Java ke format JSON dengan mudah, menyahsiri data JSON kembali ke objek Java dan memetakan aliran data JSON ke objek Java. Ini menjadikan pemprosesan data JSON agak mudah.
Atas ialah kandungan terperinci Menggunakan Jackson untuk memproses data JSON dalam pembangunan API Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!