簡體   English   中英

來自yaml的springboot中的自動裝配json值

[英]Autowire json value in springboot from yaml

如何從 Spring Boot 應用程序中的 yaml 文件中讀取 json 作為字符串?

我需要將 json 作為字符串 / json 對象。

應用程序.yml

Shirt:
 rest:
  booking:
   invoiceAddress: {"name":"VIA Pics AB","address1":"VIA Pics AB","address2":"Mejerivägen 3","zipCode":"11743","city":"STOCKHOLM","countryCode":"SE","email":"w.ho@Pics.fr"}

配置類

@Configuration
public class ConfigurationServiceClientConfiguration {

    @Value("${Shirt.rest.booking.invoiceAddress}")
    private String invoiceAddress;

    @Bean
    public String getInvoiceAddress(){
        System.out.println(invoiceAddress);
        return this.invoiceAddress;
    }
}

還嘗試了@JsonProperty,但不知道我的用法是否錯誤!

注意:我還沒有准備好將 json 更改為列表,因為會有更多的 json(invoiceAddress)來,我必須為每個列表列出。 因此,如果可以將 json 原樣復制到 yaml 文件中,對我來說很容易。

如果你想作為一個計划字符串,你應該在單引號“你的價值”之間添加這個值。 在你的 yml 文件中

Shirt:
 rest:
  booking:
   invoiceAddress: '{"name":"VIA Pics AB","address1":"VIA Pics AB","address2":"Mejerivägen 3","zipCode":"11743","city":"STOCKHOLM","countryCode":"SE","email":"w.ho@Pics.fr"}'

嘗試修改您的 yml 文件,如下所示:

Shirt.rest.booking:
   invoiceAddress: "\"name\":\"VIA Pics AB\",\"address1\":\"VIA Pics AB\",\"address2\":\"Mejerivägen 3\",\"zipCode\":\"11743\",\"city\":\"STOCKHOLM\",\"countryCode\":\"SE\",\"email\":\"w.ho@Pics.fr\""

單引號轉義 YAML 屬性值中的所有特殊字符。 只需嘗試將字符串添加到單引號“PropertiesValue”中。

例如:

invoiceAddress: '{"name":"VIA Pics AB","address1":"VIA Pics AB","address2":"Mejerivägen 3","zipCode":"11743","city":"STOCKHOLM","countryCode":"SE","email":"w.ho@Pics.fr"}'
Shirt:
 rest:
  booking:
   invoiceAddress: >
    {"name":"VIA Pics AB","address1":"VIA Pics AB","address2":"Mejerivägen 3","zipCode":"11743","city":"STOCKHOLM","countryCode":"SE","email":"w.ho@Pics.fr"}

@參見https://stackoverflow.com/a/17093553/2929352

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM