如何将Java对象转换为JSON字符串
当学习如何编写基于Java的软件时,开发⼈员遇到的第⼀个障碍就是如何将其代码与其他软件连接。 这通常是JSON的来源。尽管您可能是Java向导,但JSON是另⼀种动物。 ⽆论如何,这篇博客⽂章解释了完成⼯作所需的⼀切。
Java对象是数据和处理可⽤数据的过程的组合 。
对象既有状态⼜有⾏为 。 在Java中,使⽤关键字“ new”创建对象。
对象是从称为类的模板创建的。
对象是类的实例。
例如,我们的“ 猫对象 ”有: 美国 -颜⾊,名称,品种
对象的状态存储在字段(变量)中。 ⾏为 –呼pur,进⾷,睡觉的⽅法(功能)显⽰对象的⾏为。
JSON是JavaScript Object Notation的⾸字母缩写。
JSON格式  被设计为数据交换格式,并且语法是JavaScript的⼦集。
从⽂本⽂件等加载的引号(单引号或双引号)包围的上下⽂称为JSON字符串。
例如
{“ id”:1,“ name”:“ SiAm”,“ color”:“ Cream”,“ eyecolor”:“ Blue”,“ breed”:“ Siamese”} JSON是可互操作的,这意味着它与语⾔/平台⽆关。
JSON格式⽤于通过⽹络连接序列化和传输结构化数据。 它主要⽤于在服务器和移动/ Web应⽤程序之间传输数据,是XML的替代⽅法。
下⾯的⽰例演⽰了⼀个客户端服务器场景,其中RESTful Web服务接受XML / JSON格式的数据。json转换对象
RESTful Web服务器应⽤程序是使⽤Java设计的:
最终⽤户不了解xml / json,但这不是问题
最终⽤户与可能是android的移动应⽤进⾏通信
最终⽤户与可能是php的移动应⽤进⾏通信
移动/ Web应⽤程序通过XML / JSON与RESTful Web服务进⾏通信
在上⾯的⽰例图中,我们的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 Object转换为JSON字符串的最常见⽅法是使⽤API 。 为此⽬的最常⽤的API是Jackson和GSON。
本⽰例说明如何使⽤JACKSON API将Java对象转换为JSON字符串。
我们可以使⽤Jackson API提供的ObjectMapper类进⾏转换。
writeValueAsString()⽤于将Java obj转换为JSON
readValue()⽤于将JSON转换为Java obj
步骤1:
使⽤MAVEN进⾏依赖关系管理(推荐)时,可以包括以下依赖关系来下载JAR⽂件,JACKSON的任何依赖关系,并⾃动将其包括在项⽬的类路径中。
将以下依赖项添加到pom⽂件:
<dependencies>  <dependency>
<groupId>com.</groupId>
<artifactId>jackson-databind</artifactId>
<version> 2.9 . 8 </version>  </dependency>  </dependencies> 步骤2:
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.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();
}
Cat class
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; } id; }
public void setId(Long id) { this .id = id; } .id = id; }
public String getName() { return name; } name; }
public void setName(String name) { this .name = name; } .name = name; }
public String getColor() { return color; } color; }
public void setColor(String color) { this .color = color; } .color = color; }
public String getEyecolor() { return eyecolor;
public void setEyecolor(String eyecolor) { this .eyecolor = eyecolor; } .eyecolor = eyecolor; }
public String getBreed() { return breed; } breed; }
public void setBreed(String breed) { this .breed = breed; } .breed = breed; }
}
步骤3:运⾏useJACKSONapitoConvertJavaOBJtoJSONstring
ResultingJSONstring = { "id" : 1 , "name" : "SiAm" , "color" : "Cream" , "eyecolor" : "Blue" , "breed" : "Siamese" }
使⽤查代码段的最佳⽰例。
下⾯的⽰例演⽰如何使⽤GSON API将Java对象转换为JSON字符串。
步骤1:
使⽤MAVEN进⾏依赖关系管理(推荐)时,可以包括以下依赖关系来下载JAR⽂件,GSON的任何依赖关系,并⾃动包括在项⽬的类路径中,如下所⽰:
将以下依赖项添加到pom⽂件:
<dependencies>  <dependency>
<groupId&le.code.gson</groupId>
<artifactId>gson</artifactId>
<version> 2.3 . 1 </version>
</dependency>  </dependencies>
步骤2:
使⽤以下命令调⽤GSON API:Gson gson = new Gson();
本⽰例使⽤以下代码:
类UseGSONapitoConvertJavaOBJtoJASONstring
le.gson.Gson;  public class UseGSONapitoConvertJavaOBJtoJASONstring{
public static void main(String args[]) {
CatDetails user = new CatDetails( "SiAm" ,
"Siamese" ,
"siam.cat@gmail" ,
9 ,
2129991234L,
"NewCatadonia" ,
true );
Gson gson = new Gson();
String json = Json(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" : "siam.cat@gmail" , "catlives" : 9 , "phone" : 2129991234 , "city" : "NewCatadonia" , "likesMice" : true 使⽤JACKSON或GSON API,将Java Obj转换为JSON字符串很简单。
在我们的⽰例中,我们提供了使您可以轻松在IDE中重现的代码。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。