Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.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 使用休息服务_Java_Spring_Rest - Fatal编程技术网

Java 使用休息服务

Java 使用休息服务,java,spring,rest,Java,Spring,Rest,我刚开始学习rest服务,我已经读过了。根据本教程,我有一个服务可以使用和显示。 该服务是一个RESTAPI,我得到了一个类似这样的json { "disclaimer": "1", "license": "2", "timestamp": 1458057661, "base": "someValue", "rates": { "one": 3.673019, "two": 68.449999, "three": 124.168, "four": 488.6

我刚开始学习rest服务,我已经读过了。根据本教程,我有一个服务可以使用和显示。 该服务是一个RESTAPI,我得到了一个类似这样的json

 {
"disclaimer": "1",
"license": "2",
"timestamp": 1458057661,
"base": "someValue",
   "rates": {
     "one": 3.673019,
     "two": 68.449999,
   "three": 124.168,
  "four": 488.669996,
    ...,
     ...,
   ...
   }
}
@JsonIgnoreProperties(ignoreUnknown = true)
public class Cur {

private String disclaimer;
private String license;
private String timestamp;
private String base;    
private Rates rates;

public Cur() {
    super();
}

///get/set 


///tostring

}

@JsonIgnoreProperties(ignoreUnknown = true)
 public class Rates {

public Rates(){

    //// i am not sure here how  should i get the rates value.
   }

 }
然后我创建了两个这样的Java类

 {
"disclaimer": "1",
"license": "2",
"timestamp": 1458057661,
"base": "someValue",
   "rates": {
     "one": 3.673019,
     "two": 68.449999,
   "three": 124.168,
  "four": 488.669996,
    ...,
     ...,
   ...
   }
}
@JsonIgnoreProperties(ignoreUnknown = true)
public class Cur {

private String disclaimer;
private String license;
private String timestamp;
private String base;    
private Rates rates;

public Cur() {
    super();
}

///get/set 


///tostring

}

@JsonIgnoreProperties(ignoreUnknown = true)
 public class Rates {

public Rates(){

    //// i am not sure here how  should i get the rates value.
   }

 }
问题是如何填充Rates类以将数据放入变量中,以便稍后在视图中显示。 我使用rest模板。这是测试。它有效,但我没有比率值。 我想我需要一张地图,因为它是一个集合。知道如何实现它吗

@Test
public void getCurTest() { 
    String URL="some url";
    String JSONTYPE="some json type";
    String API="some id";
    RestTemplate restTemplate = new RestTemplate();         
    Cur cur= restTemplate.getForObject(URL+JSONTYPE+API, Cur.class);
    log.info("cur");        
    System.out.println(cur);
}

按照JSON的方式,要使您的类达到普及率,您的类应该如下所示

public class Cur {

    private String disclaimer;
    private String license;
    private Integer timestamp;
    private String base;
    private Rates rates;

}

公共类费率{
私人双一;
私人双二;
私人双三;
私人双四;
//这会更好,但JSON不适合这一点
//私人地图费率;
}

您要使用哪种API?

几年前我也使用过同样的API,这有点奇怪。这是你能做的

第一种解决方案

简单的方法是

 CloseableHttpClient httpclient = HttpClients.createDefault();
    HttpGet httpget = new HttpGet("your rest service api");
    CloseableHttpResponse response = httpclient.execute(httpget);
    try {
        HttpEntity entity = response.getEntity();

        if (HttpStatus.SC_OK == response.getStatusLine().getStatusCode()) {
            String responseValue = EntityUtils.toString(entity);
            System.out.println(responseValue);
        } else {
            // log error
        }
    } finally {
        response.close();
    }
}
然后,您可以将所有内容作为字符串获取,并使用正则表达式对其进行解析,从而获得所需内容

第二种解决方案

您可以按原样将所有剩余内容保存到数据库中。使用mongodb可以加快速度。
然后你可以把它从那里拿到一个类中并使用它

第三种解决方案

使用这个工具只需粘贴json,它就会创建java类来使用它们。你可以选择任何你想添加的内容。这将创建您的类,然后您可以使用它们。 为了您的方便

package com.example;

import java.util.HashMap;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import org.apache.commons.lang.builder.ToStringBuilder;

@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({
"disclaimer",
"license",
"timestamp",
"base",
"rates"
})
public class Example {

@JsonProperty("disclaimer")
private String disclaimer;
@JsonProperty("license")
private String license;
@JsonProperty("timestamp")
private Integer timestamp;
@JsonProperty("base")
private String base;
@JsonProperty("rates")
private Rates rates;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();

/**
* No args constructor for use in serialization
*
*/
public Example() {
}

/**
*
* @param timestamp
* @param disclaimer
* @param base
* @param rates
* @param license
*/
public Example(String disclaimer, String license, Integer timestamp, String base, Rates rates) {
this.disclaimer = disclaimer;
this.license = license;
this.timestamp = timestamp;
this.base = base;
this.rates = rates;
}

/**
*
* @return
* The disclaimer
*/
@JsonProperty("disclaimer")
public String getDisclaimer() {
return disclaimer;
}

/**
*
* @param disclaimer
* The disclaimer
*/
@JsonProperty("disclaimer")
public void setDisclaimer(String disclaimer) {
this.disclaimer = disclaimer;
}

/**
*
* @return
* The license
*/
@JsonProperty("license")
public String getLicense() {
return license;
}

/**
*
* @param license
* The license
*/
@JsonProperty("license")
public void setLicense(String license) {
this.license = license;
}

/**
*
* @return
* The timestamp
*/
@JsonProperty("timestamp")
public Integer getTimestamp() {
return timestamp;
}

/**
*
* @param timestamp
* The timestamp
*/
@JsonProperty("timestamp")
public void setTimestamp(Integer timestamp) {
this.timestamp = timestamp;
}

/**
*
* @return
* The base
*/
@JsonProperty("base")
public String getBase() {
return base;
}

/**
*
* @param base
* The base
*/
@JsonProperty("base")
public void setBase(String base) {
this.base = base;
}

/**
*
* @return
* The rates
*/
@JsonProperty("rates")
public Rates getRates() {
return rates;
}

/**
*
* @param rates
* The rates
*/
@JsonProperty("rates")
public void setRates(Rates rates) {
this.rates = rates;
}

@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}

@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}

@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}

}


package com.example;

import java.util.HashMap;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import org.apache.commons.lang.builder.ToStringBuilder;

@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({
"one",
"two",
"three",
"four"
})
public class Rates {

@JsonProperty("one")
private Double one;
@JsonProperty("two")
private Double two;
@JsonProperty("three")
private Double three;
@JsonProperty("four")
private Double four;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();

/**
* No args constructor for use in serialization
*
*/
public Rates() {
}

/**
*
* @param two
* @param one
* @param three
* @param four
*/
public Rates(Double one, Double two, Double three, Double four) {
this.one = one;
this.two = two;
this.three = three;
this.four = four;
}

/**
*
* @return
* The one
*/
@JsonProperty("one")
public Double getOne() {
return one;
}

/**
*
* @param one
* The one
*/
@JsonProperty("one")
public void setOne(Double one) {
this.one = one;
}

/**
*
* @return
* The two
*/
@JsonProperty("two")
public Double getTwo() {
return two;
}

/**
*
* @param two
* The two
*/
@JsonProperty("two")
public void setTwo(Double two) {
this.two = two;
}

/**
*
* @return
* The three
*/
@JsonProperty("three")
public Double getThree() {
return three;
}

/**
*
* @param three
* The three
*/
@JsonProperty("three")
public void setThree(Double three) {
this.three = three;
}

/**
*
* @return
* The four
*/
@JsonProperty("four")
public Double getFour() {
return four;
}

/**
*
* @param four
* The four
*/
@JsonProperty("four")
public void setFour(Double four) {
this.four = four;
}

@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}

@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}

@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}

}
package.com.example;
导入java.util.HashMap;
导入java.util.Map;
导入javax.annotation.Generated;
导入com.fasterxml.jackson.annotation.JsonAnyGetter;
导入com.fasterxml.jackson.annotation.JsonAnySetter;
导入com.fasterxml.jackson.annotation.JsonIgnore;
导入com.fasterxml.jackson.annotation.JsonInclude;
导入com.fasterxml.jackson.annotation.JsonProperty;
导入com.fasterxml.jackson.annotation.JsonPropertyOrder;
导入org.apache.commons.lang.builder.ToStringBuilder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@生成(“org.jsonschema2pojo”)
@JsonPropertyOrder({
“免责声明”,
“许可证”,
“时间戳”,
“基地”,
“费率”
})
公开课范例{
@JsonProperty(“免责声明”)
私人字符串免责声明;
@JsonProperty(“许可证”)
私有字符串许可证;
@JsonProperty(“时间戳”)
私有整数时间戳;
@JsonProperty(“基础”)
私有字符串基;
@JsonProperty(“费率”)
私人差饷;
@杰索尼奥雷
私有映射additionalProperties=new HashMap();
/**
*没有用于序列化的args构造函数
*
*/
公共示例(){
}
/**
*
*@param时间戳
*@param免责声明
*@param-base
*@param费率
*@param许可证
*/
公开示例(字符串免责声明、字符串许可证、整数时间戳、字符串基数、费率){
本.免责声明=免责声明;
this.license=许可证;
this.timestamp=时间戳;
this.base=base;
这个。比率=比率;
}
/**
*
*@返回
*免责声明
*/
@JsonProperty(“免责声明”)
公共字符串getDisclaimer(){
退货免责声明;
}
/**
*
*@param免责声明
*免责声明
*/
@JsonProperty(“免责声明”)
公共无效设置免责声明(字符串免责声明){
本.免责声明=免责声明;
}
/**
*
*@返回
*执照
*/
@JsonProperty(“许可证”)
公共字符串getLicense(){
归还许可证;
}
/**
*
*@param许可证
*执照
*/
@JsonProperty(“许可证”)
公共无效设置许可证(字符串许可证){
this.license=许可证;
}
/**
*
*@返回
*时间戳
*/
@JsonProperty(“时间戳”)
公共整数getTimestamp(){
返回时间戳;
}
/**
*
*@param时间戳
*时间戳
*/
@JsonProperty(“时间戳”)
public void setTimestamp(整数时间戳){
this.timestamp=时间戳;
}
/**
*
*@返回
*基地
*/
@JsonProperty(“基础”)
公共字符串getBase(){
返回基地;
}
/**
*
*@param-base
*基地
*/
@JsonProperty(“基础”)
公共无效收进框(字符串基){
this.base=base;
}
/**
*
*@返回
*费率
*/
@JsonProperty(“费率”)
公共差饷{
回报率;
}
/**
*
*@param费率
*费率
*/
@JsonProperty(“费率”)
公共无效设定费率(费率){
这个。比率=比率;
}
@凌驾
公共字符串toString(){
返回到stringbuilder.reflectionString(this);
}
@JsonAnyGetter
公共映射getAdditionalProperties(){
返回此。附加属性;
}
@JSONANYSETER
public void setAdditionalProperty(字符串名称、对象值){
this.additionalProperties.put(名称、值);
}
}
包com.example;
导入java.util.HashMap;
导入java.util.Map;
导入javax.annotation.Generated;
导入com.fasterxml.jackson.annotation.JsonAnyGetter;
导入com.fasterxml.jackson.annotation.JsonAnySetter;
导入com.fasterxml.jackson.annotation.JsonIgnore;
导入com.fasterxml.jackson.annotation.JsonInclude;
导入com.fasterxml.jackson.annotation.JsonProperty;
导入com.fasterxml.jackson.annotation.JsonPropertyOrder;
导入org.apache.commons.lang.builder.ToStringBuilder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@生成(“org.jsonschema2pojo”)
@JsonPropertyOrder({
“一个”,
“两个”,
“三”,
“四个”
})
公费{
@JsonProperty(“一”)
私人双一;
@JsonProperty(“两个”)
私人双二;
@JsonProperty(“三”)
私人双三;
@JsonProperty(“四”)
私人双四;
@杰索尼奥雷
私有映射additionalProperties=new HashMap();
/**
*没有用于序列化的args构造函数
*
*/
公共差饷(){
}
/**
*
*@param二号
*@param-one
*@param三
*@param-four
*/
公共费率(双倍一、双倍二、双倍三、双倍四){
这个1=1;
这个2=2;
这三个=三个;
这个4=4;
}
/**
*
*@返回
*那个
*/
@JsonProperty(“一”)
公共双getOne(){
返回一个;
}
/**
*
*@param-one
*那个
*/
@JsonProperty(“一”)
公共空间设置一(双一){
这个1=1;
}
/**
*
*@返回
*两个
*/
@JsonProperty(“两个”)
公共双getwo(){
返回两个;
}
/**
*
*@param二号
*两个
*/
@JsonProperty(“两个”)
公共空间设置2(双2){
这个2=2;
}
/**
*
*@返回
*三个
*/
@JsonProperty(“三”)
公共双getThre