首页 > 解决方案 > 如何在 Java Spring 中将属性名称放入 JSON 中

问题描述

我已经可以在我的 java spring 代码中生成一个 JSON,如下所示:

[{"language":"33270100","value":100.0}]

但问题是我怎样才能像这样在我的 JSON 上放置一个标识符:

 ["Identifier":{"language":"33270100","value":100.0}]

下面是我在 java spring 中的代码,因为它可以在我将来在我的实验项目中编码时帮助我:

import javax.persistence.ColumnResult;
import javax.persistence.ConstructorResult;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedNativeQueries;
import javax.persistence.NamedNativeQuery;
import javax.persistence.SqlResultSetMapping;

import com.fasterxml.jackson.annotation.JsonProperty;

@SqlResultSetMapping(name = "highAvailResult", classes = {
        @ConstructorResult(targetClass = dashboard.atmandcam.model.HighAvailabilityCam.class, columns = {
                @ColumnResult(name = "terminal_id", type = String.class),
                @ColumnResult(name = "availability_percentage", type = Double.class)
        })
})

@NamedNativeQueries({
    @NamedNativeQuery(
            name = "GetRangeHighAvail.getData",
            query = "SELECT DISTINCT da.terminal_id, da.availability_date, da.availability_percentage\r\n" + 
                    "FROM dashboard.availability da\r\n" + 
                    "INNER JOIN dashboard.down_event de ON de.terminal_id = da.terminal_id\r\n" + 
                    "WHERE da.availability_percentage >= 95\r\n" + 
                    "AND da.availability_date BETWEEN ?1 AND ?2 \r\n" + 
                    "AND da.terminal_id IN (SELECT terminal_id FROM dashboard.inventory WHERE machine_type = 'CAM')",
            resultSetMapping = "highAvailResult"
            ),
    @NamedNativeQuery(
            name = "GetHighAvail.getData",
            query = "SELECT DISTINCT da.terminal_id, da.availability_date, da.availability_percentage\r\n" + 
                    "FROM dashboard.availability da\r\n" + 
                    "INNER JOIN dashboard.down_event de ON de.terminal_id = da.terminal_id\r\n" + 
                    "WHERE da.availability_percentage >= 95\r\n" + 
                    "AND da.availability_date = ?1  \r\n" + 
                    "AND da.terminal_id IN (SELECT terminal_id FROM dashboard.inventory WHERE machine_type = 'CAM')",
            resultSetMapping = "highAvailResult"
            )
})
@Entity
public class HighAvailabilityCam {

    @Id
    private Long id;

    @JsonProperty("language")
    private String terminalId;

    @JsonProperty("value")
    private double availabilityPercentage;

    public HighAvailabilityCam(String termId, double availPercentage) {
        super();
        this.terminalId = termId;
        this.availabilityPercentage = availPercentage;
    }

    public HighAvailabilityCam() { }
}

任何帮助将不胜感激。我还是 java spring 的新手,目前正在做我自己的项目。

标签: javajsonspring-boot

解决方案


推荐阅读