[Total: 4 Average: 4.8/5]
在学习如何编写基于Java的软件时,开发人员遇到的第一个障碍是如何将其代码与其他软件连接。 通常是JSON的来源。虽然您可能是Java向导,但JSON是另一种动物。 无论如何,这篇博客文章解释了完成工作所需的一切。
什么是Java对象?
Java对象是数据和处理可用数据的过程的组合。
对象具有状态和行为。 在Java中,使用关键字“ new”创建对象。
对象是根据称为类的模板创建的。
对象是类的实例。
例如,我们的“ 猫对象”具有:状态 –颜色,名称,品种
对象的状态存储在字段(变量)中。 行为 –发出呼,、进食,睡觉的方法(功能)可显示对象的行为。
什么是JSON字符串?
- JSON 是 JavaScript Object Notation 的首字母缩写。
- JSON 被设计为数据交换格式,并且语法是JavaScript的子集。
- 从文本文件等装入的引号(单引号或双引号)包围的上下文称为JSON字符串。
例如
{“ id”:1,“ name”:“ SiAm”,” 颜色”:“奶油”,“眼睛颜色”:“蓝色”,“品种”:“连体”} - JSON是可互操作的,这意味着它与语言/平台无关。
转换Java对象的常见用法。 到JSON字符串
下面的示例演示RESTful Web Service接受XML / JSON数据的客户端服务器场景。
- RESTful Web服务器应用程序是使用java设计的:
- 最终用户不了解xml / json,但这不是问题
- 最终用户与可能是android的移动应用进行通信
- 最终用户与可能是php的移动应用进行通信
- 移动/ Web应用通过XML / JSON与RESTful Web服务通信
何时要将Java Obj转换为JSON字符串?
在上面的示例图中,我们的RESTful Web服务是使用Java设计的。
由于Java对象只能由Java应用程序理解,因此在为Android应用程序创建Web服务时,需要将Java对象转换为JSON。 假设移动应用是一种混合应用,其中前端由android视图处理,数据交易通过自己的网络服务使用JSON发送。 在这种情况下,我们需要使用Web服务/ api和JSON数据结构从android应用向数据库发送请求/从数据库接收请求。
- JSON是简单的字符串格式数据。 JSON是可读格式。 从中读取和推断信息非常容易。
- JSON格式使用简单。 与其他格式(如XML等)相比,
- JSON非常轻巧。 可以以面向对象的方式将
- JSON 格式轻松地转换为Java对象。
- JSON是可互操作的:与程序和平台无关。
有关如何将Java对象转换为JSON字符串的分步示例
将Java对象转换为JSON字符串的最常见方法是使用API 。 为此目的最常用的API是Jackson和GSON。
此示例显示了如何使用JACKSON API将Java对象转换为JSON字符串。
我们可以使用Jackson API提供的 ObjectMapper类进行转换。
- writeValueAsString()用于将Java obj转换为JSON
- readValue()用于将JSON转换为Java obj
步骤1:将JACKSON JAR文件包含到您的类路径中。
使用MAVEN进行依赖关系管理(推荐)时,您可以包括以下依赖关系来下载JAR文件,JACKSON的所有依赖关系,并自动将其包括在项目的类路径中。
将以下依赖项添加到pom文件中:
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
</dependencies>
步骤2:使用Jackson API ObjectMapper类将Java Object转换为JSON字符串
ObjectMapper mapper = new ObjectMapper();
try {
String json = mapper.writeValueAsString(cat);
System.out.println("ResultingJSONstring = " + json);
//System.out.println(json);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
This example uses the following code:
class useJACKSONapiToConvertJavaOBJtoJSONstring
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class useJACKSONapiToConvertJavaOBJtoJSONstring {
public static void main(String[] args) {
Cat cat = new Cat();
cat.setId(1L);
cat.setName("SiAm");
cat.setColor("Cream");
cat.setEyecolor("Blue");
cat.setBreed("Siamese");
ObjectMapper mapper = new ObjectMapper();
try {
String json = mapper.writeValueAsString(cat);
System.out.println("ResultingJSONstring = " + json);
//System.out.println(json);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
class Cat
public class Cat {
private Long id;
private String name;
private String color;
private String eyecolor;
private String breed;
public Cat() {
public Cat(Long id, String name) {
this.id = id;
= name;
// Getters & Setters
@Override
public String toString() {
return "Cat{" +
"id=" + id +
", name='" + name +
'\'' +
'}';
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { = name; }
public String getColor() { return color; }
public void setColor(String color) { this.color = color; }
public String getEyecolor() { return eyecolor;
public void setEyecolor(String eyecolor) { this.eyecolor = eyecolor; }
public String getBreed() { return breed; }
public void setBreed(String breed) { this.breed = breed; }
}
步骤3:运行useJACKSONapitoConvertJavaOBJtoJSONstring
ResultingJSONstring = {"id":1,"name":"SiAm","color":"Cream","eyecolor":"Blue","breed":"Siamese"}
找到 Java 的最佳示例 使用 com.google.gson 。
以下示例显示了如何使用GSON API将Java对象转换为JSON字符串。
步骤1:将GSON JAR文件包括到您的类路径中
使用MAVEN进行依赖关系管理(推荐)时,您可以包括以下依赖关系来下载JAR文件,GSON的任何依赖关系,并自动包括在项目的类路径中,如下所示:
将以下依赖项添加到pom文件中:
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>
步骤2:创建类UseGSONapitoConvertJavaOBJtoJASONstring
使用以下命令调用GSON API:Gson gson = new Gson();
This example uses the following code:
class UseGSONapitoConvertJavaOBJtoJASONstring
import com.google.gson.Gson;
public class UseGSONapitoConvertJavaOBJtoJASONstring{
public static void main(String args[]) {
CatDetails user = new CatDetails("SiAm",
"Siamese",
"siam.cat@",
9,
2129991234L,
"NewCatadonia",
true);
Gson gson = new Gson();
String json = gson.toJson(user);
System.out.println(json);
}
CatDetails类
/**
* Java Program to map a Java object to JSON String using GSON library.
*/
class CatDetails {
private String name;
private String breed;
private String email;
private int catlives;
private long phone;
private String city;
private boolean likesMice;
public CatDetails(String name, String breed, String email, int catlives, long phone,
String city, boolean likesMice) {
super();
= name;
this.email = email;
this.catlives = catlives;
this.phone = phone;
this.city = city;
this.likesMice = likesMice;
this.breed = breed;
//getters & setters
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
public String getBreed() {
return breed;
}
public void setBreed(String breed) {
this.breed = breed;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getCatlives() {
return catlives;
}
public void setCatlives(int catlives) {
this.catlives = catlives;
}
public long getPhone() {
return phone;
}
public void setPhone(long phone) {
this.phone = phone;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public boolean isLikesMice() {
return likesMice;
}
public void setLikesMice(boolean likesMice) {
this.likesMice = likesMice;
}
}
结果:
步骤3:运行UseGSONapitoConvertJavaOBJtoJASONstring
{"name":"SiAm","breed":"Siamese","email":"siam.cat@","catlives":9,"phone":2129991234,"city":"NewCatadonia","likesMice":true}
结论
使用JACKSON或GSON API,将Java Obj转换为JSON字符串很简单。
在我们的示例中,我们提供了使您可以轻松在IDE中进行重现的代码。
您需要做的是:
对象的状态存储在字段(变量)中。 行为 –发出呼,、进食,睡觉的方法(功能)可显示对象的行为。
- JSON 是 JavaScript Object Notation 的首字母缩写。
- JSON 被设计为数据交换格式,并且语法是JavaScript的子集。
- 从文本文件等装入的引号(单引号或双引号)包围的上下文称为JSON字符串。
例如
{“ id”:1,“ name”:“ SiAm”,” 颜色”:“奶油”,“眼睛颜色”:“蓝色”,“品种”:“连体”} - JSON是可互操作的,这意味着它与语言/平台无关。
转换Java对象的常见用法。 到JSON字符串
下面的示例演示RESTful Web Service接受XML / JSON数据的客户端服务器场景。
- RESTful Web服务器应用程序是使用java设计的:
- 最终用户不了解xml / json,但这不是问题
- 最终用户与可能是android的移动应用进行通信
- 最终用户与可能是php的移动应用进行通信
- 移动/ Web应用通过XML / JSON与RESTful Web服务通信
何时要将Java Obj转换为JSON字符串?
在上面的示例图中,我们的RESTful Web服务是使用Java设计的。
由于Java对象只能由Java应用程序理解,因此在为Android应用程序创建Web服务时,需要将Java对象转换为JSON。 假设移动应用是一种混合应用,其中前端由android视图处理,数据交易通过自己的网络服务使用JSON发送。 在这种情况下,我们需要使用Web服务/ api和JSON数据结构从android应用向数据库发送请求/从数据库接收请求。
- JSON是简单的字符串格式数据。 JSON是可读格式。 从中读取和推断信息非常容易。
- JSON格式使用简单。 与其他格式(如XML等)相比,
- JSON非常轻巧。 可以以面向对象的方式将
- JSON 格式轻松地转换为Java对象。
- JSON是可互操作的:与程序和平台无关。
有关如何将Java对象转换为JSON字符串的分步示例
将Java对象转换为JSON字符串的最常见方法是使用API 。 为此目的最常用的API是Jackson和GSON。
此示例显示了如何使用JACKSON API将Java对象转换为JSON字符串。
我们可以使用Jackson API提供的 ObjectMapper类进行转换。
- writeValueAsString()用于将Java obj转换为JSON
- readValue()用于将JSON转换为Java obj
步骤1:将JACKSON JAR文件包含到您的类路径中。
使用MAVEN进行依赖关系管理(推荐)时,您可以包括以下依赖关系来下载JAR文件,JACKSON的所有依赖关系,并自动将其包括在项目的类路径中。
将以下依赖项添加到pom文件中:
<dependencies> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.8</version> </dependency> </dependencies>
步骤2:使用Jackson API ObjectMapper类将Java Object转换为JSON字符串
ObjectMapper mapper = new ObjectMapper(); try { String json = mapper.writeValueAsString(cat); System.out.println("ResultingJSONstring = " + json); //System.out.println(json); } catch (JsonProcessingException e) { e.printStackTrace(); }
This example uses the following code:
class useJACKSONapiToConvertJavaOBJtoJSONstring
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; public class useJACKSONapiToConvertJavaOBJtoJSONstring { public static void main(String[] args) { Cat cat = new Cat(); cat.setId(1L); cat.setName("SiAm"); cat.setColor("Cream"); cat.setEyecolor("Blue"); cat.setBreed("Siamese"); ObjectMapper mapper = new ObjectMapper(); try { String json = mapper.writeValueAsString(cat); System.out.println("ResultingJSONstring = " + json); //System.out.println(json); } catch (JsonProcessingException e) { e.printStackTrace(); } class Cat
public class Cat { private Long id; private String name; private String color; private String eyecolor; private String breed; public Cat() { public Cat(Long id, String name) { this.id = id; = name; // Getters & Setters @Override public String toString() { return "Cat{" + "id=" + id + ", name='" + name + '\'' + '}'; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { = name; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public String getEyecolor() { return eyecolor; public void setEyecolor(String eyecolor) { this.eyecolor = eyecolor; } public String getBreed() { return breed; } public void setBreed(String breed) { this.breed = breed; } }
步骤3:运行useJACKSONapitoConvertJavaOBJtoJSONstring
ResultingJSONstring = {"id":1,"name":"SiAm","color":"Cream","eyecolor":"Blue","breed":"Siamese"}
找到 Java 的最佳示例 使用 com.google.gson 。
以下示例显示了如何使用GSON API将Java对象转换为JSON字符串。
步骤1:将GSON JAR文件包括到您的类路径中
使用MAVEN进行依赖关系管理(推荐)时,您可以包括以下依赖关系来下载JAR文件,GSON的任何依赖关系,并自动包括在项目的类路径中,如下所示:
将以下依赖项添加到pom文件中:
<dependencies> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.3.1</version> </dependency> </dependencies>
步骤2:创建类UseGSONapitoConvertJavaOBJtoJASONstring
使用以下命令调用GSON API:Gson gson = new Gson();
This example uses the following code:
class UseGSONapitoConvertJavaOBJtoJASONstring
import com.google.gson.Gson; public class UseGSONapitoConvertJavaOBJtoJASONstring{ public static void main(String args[]) { CatDetails user = new CatDetails("SiAm", "Siamese", "siam.cat@", 9, 2129991234L, "NewCatadonia", true); Gson gson = new Gson(); String json = gson.toJson(user); System.out.println(json); }
CatDetails类
/** * Java Program to map a Java object to JSON String using GSON library. */ class CatDetails { private String name; private String breed; private String email; private int catlives; private long phone; private String city; private boolean likesMice; public CatDetails(String name, String breed, String email, int catlives, long phone, String city, boolean likesMice) { super(); = name; this.email = email; this.catlives = catlives; this.phone = phone; this.city = city; this.likesMice = likesMice; this.breed = breed; //getters & setters public String getName() { return name; } public void setName(String name) { = name; } public String getBreed() { return breed; } public void setBreed(String breed) { this.breed = breed; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public int getCatlives() { return catlives; } public void setCatlives(int catlives) { this.catlives = catlives; } public long getPhone() { return phone; } public void setPhone(long phone) { this.phone = phone; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public boolean isLikesMice() { return likesMice; } public void setLikesMice(boolean likesMice) { this.likesMice = likesMice; } }
结果:
步骤3:运行UseGSONapitoConvertJavaOBJtoJASONstring
{"name":"SiAm","breed":"Siamese","email":"siam.cat@","catlives":9,"phone":2129991234,"city":"NewCatadonia","likesMice":true}
结论
使用JACKSON或GSON API,将Java Obj转换为JSON字符串很简单。
在我们的示例中,我们提供了使您可以轻松在IDE中进行重现的代码。
您需要做的是: