如何将字符串转换为数据库字段——Java/Spring/Postgres?
嗯。我使用了如何将字符串转换为数据库字段——Java/Spring/Postgres?,java,spring,string,postgresql,spring-boot,Java,Spring,String,Postgresql,Spring Boot,嗯。我使用了response=restemplate.exchange(url,HttpMethod.POST,request,String.class)向资源服务器发送一些请求。在这种情况下,我使用了System.out.println(“Response------”+Response.getBody())。执行该命令后,我将收到一个字符串,该字符串同时是某种JSON对象。你能给我解释一下我如何把它转换成某种实体,这样我就可以把它存储到我的数据库中吗?提前谢谢 我收到的字符串是这样的:{“访
response=restemplate.exchange(url,HttpMethod.POST,request,String.class)
向资源服务器发送一些请求。在这种情况下,我使用了System.out.println(“Response------”+Response.getBody())代码>。执行该命令后,我将收到一个字符串,该字符串同时是某种JSON对象。你能给我解释一下我如何把它转换成某种实体,这样我就可以把它存储到我的数据库中吗?提前谢谢
我收到的字符串是这样的:{“访问令牌”:“示例…”,“过期令牌”:28800,“刷新令牌”:“示例…”,“范围”:“示例…”,“令牌类型”:“承载者”,“用户id”:“示例…”
尝试使用Gson:
Gson gson = new Gson();
QuestionAnswerDTO questionAnswerDTOs = gson.fromJson(json, new TypeToken<QuestionAnswerDTO>() {
}.getType());
Gson-Gson=new-Gson();
QuestionAnswerDTO questionAnswerDTOs=gson.fromJson(json,新类型令牌(){
}.getType());
此处QuestionAnserDTO包含与JSON字符串中相同的字段。尝试使用Gson:
Gson gson = new Gson();
QuestionAnswerDTO questionAnswerDTOs = gson.fromJson(json, new TypeToken<QuestionAnswerDTO>() {
}.getType());
Gson-Gson=new-Gson();
QuestionAnswerDTO questionAnswerDTOs=gson.fromJson(json,新类型令牌(){
}.getType());
此处QuestionAnserDTO包含与JSON字符串中相同的字段。您需要使用jaxb创建所需的实体,如:
@XmlRootElement
public final class Entity {
private Integer id;
private String name;
public final Integer getId() {
return this.id;
}
public final void setId(Integer id) {
this.id = id;
}
public final String getName() {
return this.name;
}
public final void setName( String name) {
this.name = name;
}
}
然后你可以做一些简单的事情,比如:
response = restTemplate.exchange(url, HttpMethod.POST,request, Entity.class);
您需要使用jaxb创建所需的实体,如:
@XmlRootElement
public final class Entity {
private Integer id;
private String name;
public final Integer getId() {
return this.id;
}
public final void setId(Integer id) {
this.id = id;
}
public final String getName() {
return this.name;
}
public final void setName( String name) {
this.name = name;
}
}
然后你可以做一些简单的事情,比如:
response = restTemplate.exchange(url, HttpMethod.POST,request, Entity.class);
您可以使用来自Jackson的ObjectMapper(com.fasterxml.Jackson.databind.ObjectMapper)
您可以使用来自Jackson的ObjectMapper(com.fasterxml.Jackson.databind.ObjectMapper)
您需要向我们展示JSON的外观,还需要告诉我们您想要的数据库结构。{“access_token”:“example…”,“expires_in”:28800,“refresh_token”:“example…”,“scope”:“example…”,“token_type”:“Bear”,“user_id”:“example…”此外,数据库将分开存储这些字段。如果它是单级(浅层)JSON对象,然后我相信Spring可能已经有能力将它映射到一个对象。在帖子中,而不是在评论@AleksandarLucicy中,你需要向我们展示JSON的样子,并告诉我们你想要的数据库结构。{“访问令牌”:“示例…”,“过期令牌”:28800,“刷新令牌”:“示例…”,“范围”:“示例…”,“令牌类型”:“承载者”,“user_id”:“example…”此外,数据库将分开存储这些字段。如果是单层(浅层)JSON对象,那么我相信Spring可能已经有能力将其映射到一个对象。拨开堆栈溢出,您将很容易发现一些问题。在帖子中添加它,而不是在comments@AleksandarLucicOk中添加,我已经尝试过这个,但如果我在之后尝试像System.out.println(obj.getAccessToken())那样打印
,我正在获取null…@AleksandarLucic您的类中访问令牌的属性名称是什么?因为您在字符串中使用了“访问令牌”,那么您的类中的属性名称应该与此json字符串中的这些键匹配。这是我能理解您获取null的唯一原因,我尝试使用“访问令牌”“就像我的类字段一样,它工作正常。是的,伙计,问题是类字段的名称,它们与JSON字符串中的字段不同。泰!好的,我已经试过了,但是如果我在这之后尝试像System.out.println(obj.getAccessToken())那样打印代码>,我得到null…@AleksandarLucic您的类中访问令牌的属性名是什么?因为它是字符串中的“access_token”,所以类中的属性名应该与这个json字符串中的这些键匹配。这是我能理解为什么会变为null的唯一原因,我尝试使用“access\u token”作为我的类字段,它起了作用。是的,伙计,问题是类字段的名称,它们与JSON字符串中的字段不同。泰!