Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将字符串转换为数据库字段——Java/Spring/Postgres?_Java_Spring_String_Postgresql_Spring Boot - Fatal编程技术网

如何将字符串转换为数据库字段——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字符串中的字段不同。泰!