Ich habe derzeit Probleme beim Versuch, diese VCAP_SERVICES zu Java-Objekten zu parsen. Ich verstehe nicht ganz, wie man das POJO so strukturiert, dass es die Werte aus der JSON-Zeichenkette abbildet. Kann mir bitte jemand helfen, meine Pojo so zu strukturieren, dass sie mit der JSON-Zeichenfolge übereinstimmt?Wie analysiert man JSON String zu Java-Objekt mit Jackson?
Ich möchte Objekte für beide Anmeldeinformationen erstellen: accessToken ... jdbcurl.
VCAP_SERVICES
"VCAP_SERVICES": {
"user-provided": [
{
"credentials": {
"accessTokenUri": "tokenurl",
"apiUrl": "apiurl",
"clientId": "typeofID",
"clientSecret": "secretAf",
"scope": "none"
},
"syslog_drain_url": "",
"volume_mounts": [],
"label": "user-provided",
"name": "OAuth2",
"tags": []
},
{
"credentials": {
"jdbcUrl": "jdbc:oracle:connection[host]:[port]/service",
"spring.datasource.driver-class-name": "oracle.jdbc.OracleDriver",
"spring.datasource.initialize": "false"
},
"syslog_drain_url": "",
"volume_mounts": [],
"label": "user-provided",
"name": "Database",
"tags": []
}
]
Java Klasse
ObjectMapper mapper = new ObjectMapper();
//json String to Object
CupsProperties properties = mapper.readValue(VCAP_Services, CupsProperties.class);
System.out.println(properties.getJdbcUrl() + "!!!!!!!!!!!!!!!!!!!");
POJOs
public class UserProviderWrapper {
@JsonProperty("user-provided")
public List<CupsProperties> cupsProperties;
@JsonProperty("syslog_drain_url")
public String syslog_drain_url;
@JsonProperty("volume_mounts")
public List<String> volume_mounts;
@JsonProperty("label")
public String label;
@JsonProperty("name")
public String name;
@JsonProperty("tags")
public List<String> tags;
//getters and setters
public class CupsProperties {
@JsonProperty("jdbcUrl")
public String jdbcUrl;
@JsonProperty("spring.datasource.driver-class-name")
public String driver;
@JsonProperty("spring.datasource.initialize")
public String initialize;
//getters and setters
Er ror
Unerkannte Feld "Benutzer bereitgestellte" (Klasse rest.springframework.model.CupsProperties), nicht als ignorable markiert (2 bekannten Eigenschaften: "jdbcUrl", "datasource"]) bei [Quelle: { "user -provided ": [{" credentials ": {" jdbcUrl ":" jdbc: oracle: thin: benutzer/pass // host: port/service "," spring.datasource.driver-klassenname ":" oracle.jdbc .OracleDriver "," spring.datasource.initialize ":" false "}," syslog_drain_url ":" "," volume_mounts ": []," label ":" benutzerdefiniert "," name ":" Oracle "," Stichworte": [ ] }]}; Zeile: 1, Spalte: 19] (über die Referenzkette: rest.springframework.model.CupsProperties ["user-provided"])
JsonProperty: http://www.baeldung.com/jackson-annotations#highlighter_520754 –
Sie nur bestimmte Felder aus dem JSON parsen wanna oder die ganze JSON konvertieren Java spiegeln Hierarchieobjekte? – yogidilip
@yogidilip Ich persönlich möchte nur bestimmte Felder aus dem JSON. Ich habe versucht und folge Guides. Ich möchte nur die Werte in "Credentials" – Jesse