欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何将Java对象转换为JSON字符串

程序员文章站 2022-07-15 23:35:31
...

当学习如何编写基于Java的软件时,开发人员遇到的第一个障碍就是如何将其代码与其他软件连接。 这通常是JSON的来源。尽管您可能是Java向导,但JSON是另一种动物。 无论如何,这篇博客文章解释了完成工作所需的一切。

什么是Java对象?

Java对象是数据和处理可用数据的过程的组合

如何将Java对象转换为JSON字符串

对象既有状态又有行为 在Java中,使用关键字“ new”创建对象。

对象是从称为类的模板创建的。

对象是类的实例。

例如,我们的“ 猫对象 ”有: 美国 -颜色,名称,品种
对象的状态存储在字段(变量)中。 行为 –呼pur,进食,睡觉的方法(功能)显示对象的行为。

什么是JSON字符串?

  • JSONJavaScript Object Notation的首字母缩写。
  • JSON格式   被设计为数据交换格式,并且语法是JavaScript的子集。
  • 从文本文件等加载的引号(单引号或双引号)包围的上下文称为JSON字符串。
    例如
    {“ id”:1,“ name”:“ SiAm”,“ color”:“ Cream”,“ eyecolor”:“ Blue”,“ breed”:“ Siamese”}
  • JSON是可互操作的,这意味着它与语言/平台无关。
  • JSON格式用于通过网络连接序列化和传输结构化数据。 它主要用于在服务器和移动/ Web应用程序之间传输数据,是XML的替代方法。

转换Java对象的常见用法。 到JSON字符串

下面的示例演示了一个客户端服务器场景,其中RESTful Web服务接受XML / JSON格式的数据。

  • RESTful Web服务器应用程序是使用Java设计的:
  • 最终用户不了解xml / json,但这不是问题
  • 最终用户与可能是android的移动应用进行通信
  • 最终用户与可能是php的移动应用进行通信
  • 移动/ Web应用程序通过XML / JSON与RESTful Web服务进行通信
如何将Java对象转换为JSON字符串

您何时要从Java Obj转换为JSON字符串?

在上面的示例图中,我们的RESTful Web服务是使用Java设计的。

如何将Java对象转换为JSON字符串

由于Java对象只能由Java应用程序理解,因此在为Android应用程序创建Web服务时,需要将Java对象转换为JSON。 假设移动应用是一个混合应用,其中前端由android视图处理,数据交易通过自己的网络服务使用JSON发送。 在这种情况下,我们需要使用Web服务/ api和JSON数据结构从android应用向数据库发送/从数据库接收请求。

  • JSON是简单的字符串格式数据。 JSON是可读格式 从中读取和推断信息非常容易。
  • JSON格式易于使用。
  • 与XML等其他格式相比,JSON 的重量
  • JSON 格式可以轻松地以面向对象的方式转换为Java对象
  • JSON是可互操作的:程序和平台无关。

Java对象到Json字符串:教程

如何将Java对象转换为JSON字符串的分步示例

将Java Object转换为JSON字符串的最常见方法是使用API 为此目的最常用的API是Jackson和GSON。

JACKSON API示例

本示例说明如何使用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();
}
本示例使用以下代码:
类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;
         this.name = 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) { this.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"}

GSON API示例

使用 com.google.gson 查找 Java 代码段 的最佳示例

下面的示例演示如何使用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();

本示例使用以下代码:
类UseGSONapitoConvertJavaOBJtoJASONstring
import com.google.gson.Gson; 
public class UseGSONapitoConvertJavaOBJtoJASONstring{ 
  public static void main(String args[]) { 
   CatDetails user = new CatDetails("SiAm",		  
	         "Siamese",
	        "aaa@qq.com",
	         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();
    this.name = 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) {
	this.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":"aaa@qq.com","catlives":9,"phone":2129991234,"city":"NewCatadonia","likesMice":true}

结论

使用JACKSON或GSON API,将Java Obj转换为JSON字符串很简单。

在我们的示例中,我们提供了使您可以轻松在IDE中重现的代码。

您需要做的只是:

  1. 创建一个新项目(建议使用Maven)
  2. 通过将依赖项添加到pom文件中,将 JAR文件包括 到您的类路径中。
  3. 建立课程
  4. 使用JACKSON API: ObjectMapper映射器类
    通过传递要转换为JSON的对象来调用writeValueAsString(ObjToConvert)方法
    要么
    使用GSON API: Gson类
      通过将要转换为JSON的对象传递给toJson(ObjToConvert)方法;

运行以将Java Obj转换为JSON字符串。


如何将Java对象转换为JSON字符串


From: https://blog.codota.com/how-to-convert-a-java-object-into-a-json-string/