日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

Java - Jackson JSON Java Parser API

發(fā)布時(shí)間:2025/3/21 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java - Jackson JSON Java Parser API 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 概述
  • 依賴
  • Jackson JSON示例
    • 基礎(chǔ)數(shù)據(jù)
    • JSON轉(zhuǎn)換為Java對(duì)象
    • Jackson JSON –將JSON轉(zhuǎn)換為Map


概述

Jackson JSON Java Parser非常流行,并且也用于Spring框架。

Jackson JSON Parser API提供了將JSON轉(zhuǎn)換為POJO對(duì)象的簡(jiǎn)便方法,并支持從JSON數(shù)據(jù)輕松轉(zhuǎn)換為Map。

Jackson也支持泛型,并直接將它們從JSON轉(zhuǎn)換為對(duì)象。


依賴

要在我們的項(xiàng)目中使用Jackson JSON Java API,我們可以將其添加到項(xiàng)目構(gòu)建路徑中

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.2.3</version> </dependency>

jackson-databind jar依賴于jackson-core和jackson-annotations庫(kù),因此,如果直接將它們添加到構(gòu)建路徑,請(qǐng)確保將所有三個(gè)添加在一起,否則會(huì)出現(xiàn)運(yùn)行時(shí)錯(cuò)誤。


Jackson JSON示例

基礎(chǔ)數(shù)據(jù)

對(duì)于從JSON到POJO / Java對(duì)象轉(zhuǎn)換的示例,我們將使用一個(gè)嵌套對(duì)象和數(shù)組的復(fù)雜示例。、

我們將在Java對(duì)象中使用數(shù)組,列表和Map進(jìn)行轉(zhuǎn)換。 json存儲(chǔ)在文件employee.txt中,其結(jié)構(gòu)如下

{"id": 123,"name": "Pankaj","permanent": true,"address": {"street": "Albany Dr","city": "San Jose","zipcode": 95129},"phoneNumbers": [123456,987654],"role": "Manager","cities": ["Los Angeles","New York"],"properties": {"age": "29 years","salary": "1000 USD"} }

有以下與json數(shù)據(jù)相對(duì)應(yīng)的java類。

【Address 】

public class Address {private String street;private String city;private int zipcode;public String getStreet() {return street;}public void setStreet(String street) {this.street = street;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}public int getZipcode() {return zipcode;}public void setZipcode(int zipcode) {this.zipcode = zipcode;}@Overridepublic String toString(){return getStreet() + ", "+getCity()+", "+getZipcode();}

【Employee 】

import java.util.Arrays; import java.util.List; import java.util.Map;public class Employee {private int id;private String name;private boolean permanent;private Address address;private long[] phoneNumbers;private String role;private List<String> cities;private Map<String, String> properties;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public boolean isPermanent() {return permanent;}public void setPermanent(boolean permanent) {this.permanent = permanent;}public Address getAddress() {return address;}public void setAddress(Address address) {this.address = address;}public long[] getPhoneNumbers() {return phoneNumbers;}public void setPhoneNumbers(long[] phoneNumbers) {this.phoneNumbers = phoneNumbers;}public String getRole() {return role;}public void setRole(String role) {this.role = role;}public List<String> getCities() {return cities;}public void setCities(List<String> cities) {this.cities = cities;}public Map<String, String> getProperties() {return properties;}public void setProperties(Map<String, String> properties) {this.properties = properties;}@Overridepublic String toString(){StringBuilder sb = new StringBuilder();sb.append("***** Employee Details *****\n");sb.append("ID="+getId()+"\n");sb.append("Name="+getName()+"\n");sb.append("Permanent="+isPermanent()+"\n");sb.append("Role="+getRole()+"\n");sb.append("Phone Numbers="+Arrays.toString(getPhoneNumbers())+"\n");sb.append("Address="+getAddress()+"\n");sb.append("Cities="+Arrays.toString(getCities().toArray())+"\n");sb.append("Properties="+getProperties()+"\n");sb.append("*****************************");return sb.toString();} }

Employee是代表根json對(duì)象的Java bean。現(xiàn)在,讓我們看看如何使用Jackson JSON解析器API將JSON轉(zhuǎn)換為Java對(duì)象

JSON轉(zhuǎn)換為Java對(duì)象

import java.io.File; import java.io.IOException; import java.io.StringWriter; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map;import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.node.ObjectNode; import com.journaldev.jackson.model.Address; import com.journaldev.jackson.model.Employee;public class JacksonObjectMapperExample {public static void main(String[] args) throws IOException {//read json file data to Stringbyte[] jsonData = Files.readAllBytes(Paths.get("employee.txt"));//create ObjectMapper instanceObjectMapper objectMapper = new ObjectMapper();//convert json string to objectEmployee emp = objectMapper.readValue(jsonData, Employee.class);System.out.println("Employee Object\n"+emp);//convert Object to json stringEmployee emp1 = createEmployee();//configure Object mapper for pretty printobjectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);//writing to console, can write to any output stream such as fileStringWriter stringEmp = new StringWriter();objectMapper.writeValue(stringEmp, emp1);System.out.println("Employee JSON is\n"+stringEmp);}public static Employee createEmployee() {Employee emp = new Employee();emp.setId(100);emp.setName("David");emp.setPermanent(false);emp.setPhoneNumbers(new long[] { 123456, 987654 });emp.setRole("Manager");Address add = new Address();add.setCity("Bangalore");add.setStreet("BTM 1st Stage");add.setZipcode(560100);emp.setAddress(add);List<String> cities = new ArrayList<String>();cities.add("Los Angeles");cities.add("New York");emp.setCities(cities);Map<String, String> props = new HashMap<String, String>();props.put("salary", "1000 Rs");props.put("age", "28 years");emp.setProperties(props);return emp;}}

輸出

Employee Object ***** Employee Details ***** ID=123 Name=Pankaj Permanent=true Role=Manager Phone Numbers=[123456, 987654] Address=Albany Dr, San Jose, 95129 Cities=[Los Angeles, New York] Properties={age=29 years, salary=1000 USD} ***************************** Employee JSON is //printing same as above json file data

com.fasterxml.jackson.databind.ObjectMapper是Jackson API中最重要的類,它提供readValue()和writeValue()方法以將JSON轉(zhuǎn)換為Java Object以及將Java Object轉(zhuǎn)換為JSON。

ObjectMapper類可以重用,并且可以將其作為Singleton對(duì)象初始化一次。有很多重載版本的readValue()和writeValue()方法可用于字節(jié)數(shù)組,File,輸入/輸出流和Reader / Writer對(duì)象。


Jackson JSON –將JSON轉(zhuǎn)換為Map

在data.txt文件中有一個(gè)如下所示的JSON對(duì)象:

{"name": "David","role": "Manager","city": "Los Angeles" }

2.2 Jackson JSON –讀取特定的JSON密鑰
2.3 Jackson JSON –編輯JSON文檔
2.4 Jackson JSON流API示例

總結(jié)

以上是生活随笔為你收集整理的Java - Jackson JSON Java Parser API的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 玖玖爱在线精品视频 | 激情戏网站 | 永久免费精品 | 日韩一区中文 | 免费一级欧美片在线播放 | 人av在线| 亚洲国产成人精品一区二区三区 | 精品女厕偷拍一区二区 | 欧美日韩中文字幕一区二区三区 | 一区二区成人在线 | 国产午夜性春猛交ⅹxxx | 三级性视频| 72种无遮挡啪啪的姿势 | 福利在线一区 | 免费网站在线观看黄色 | 国产91亚洲 | www.国产欧美 | 久久久久久久久久99 | 日韩色综合网 | 日韩视频在线免费观看 | 免费av网址在线观看 | 无人在线观看高清视频 单曲 | 奇米影视播放器 | 麻豆av剧情| av网址免费在线观看 | 精品日韩中文字幕 | 日本黄色三级网站 | 成人视品| 亚洲女同av | 在线观看免费黄网站 | 免费操人视频 | av有声小说一区二区三区 | 国产毛茸茸 | 免费一级suv好看的国产网站 | 国产又爽又黄免费视频 | 免费一级片网址 | ass精品国模裸体欣赏pics | 三级国产三级在线 | 日本黄网在线观看 | 久久久久久久影视 | 国内一级黄色片 | 99福利网 | 天堂网a | 一级大片黄色 | 无码人妻h动漫 | 青娱乐在线免费观看 | 日本护士做爰视频 | 播播开心激情网 | www.亚洲精品| 亚洲精品一区二区三区精华液 | 奶水旺盛的少妇在线播放 | av伊人久久 | 亚洲欧美视频一区 | 国产伦精品一区二区三区高清版 | 欧美人与动物xxxxx | 中文字幕被公侵犯的漂亮人妻 | 国产日韩精品久久 | 国产伦理一区二区三区 | 亚洲天堂av中文字幕 | 99热精品久久 | 色鬼久久 | 亚洲AV蜜桃永久无码精品性色 | 国产乱淫av麻豆国产 | 四虎中文字幕 | 少妇性xxxxxxxxx色武功 | 美女爽爽爽 | 免费观看污网站 | 丁香花五月天 | 国产丰满美女做爰 | 欧美tickle狂笑裸体vk | 亚洲精品爱爱 | 五十路母| 99国产精品久久久久久久成人 | 一区二区三区日韩精品 | 国精产品一二三区精华液 | 熟女俱乐部一区二区视频在线 | 欧美国产片 | 亚洲激情国产 | 91麻豆网 | 欧美性生活一区二区 | 日韩一区二区不卡视频 | 国产精品欧美在线 | 色撸撸在线视频 | 国产午夜在线 | 国产免费一区二区三区三州老师 | 天天爽夜夜爽人人爽 | 婷婷去俺也去 | 99在线观看免费视频 | 天天免费看av| 国产白丝精品91爽爽久久 | 黄色视屏免费 | 淫僧荡尼巨乳(h)小说 | 精品人妻一区二区三区三区四区 | 国产不卡网| 久久9999久久免费精品国产 | 成人午夜视频免费在线观看 | 亚洲日本色 | 国产美女免费无遮挡 | 91视频影院 |