私はjsonファイルからデータを取得する必要があるプログラムを作成しています。内容は以下のとおりです。ジャクソンを使ってjson配列を印刷する
{
"culture": "en-us",
"subscription_key": "myKey",
"description": "myDescription",
"name": "myName",
"appID": "myAppId",
"entities": [
{
"name": "Location"
},
{
"name": "geography"
}
]
}
オンラインツールを使用しています。同じツールのPOJOを作成しました。それは以下の通りです。
ConfigDetails POJO
package com.config;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"culture",
"subscription_key",
"description",
"name",
"appID",
"entities"
})
public class ConfigDetails {
@JsonProperty("culture")
private String culture;
@JsonProperty("subscription_key")
private String subscriptionKey;
@JsonProperty("description")
private String description;
@JsonProperty("name")
private String name;
@JsonProperty("appID")
private String appID;
@JsonProperty("entities")
private List<Entity> entities = null;
@JsonProperty("culture")
public String getCulture() {
return culture;
}
@JsonProperty("culture")
public void setCulture(String culture) {
this.culture = culture;
}
@JsonProperty("subscription_key")
public String getSubscriptionKey() {
return subscriptionKey;
}
@JsonProperty("subscription_key")
public void setSubscriptionKey(String subscriptionKey) {
this.subscriptionKey = subscriptionKey;
}
@JsonProperty("description")
public String getDescription() {
return description;
}
@JsonProperty("description")
public void setDescription(String description) {
this.description = description;
}
@JsonProperty("name")
public String getName() {
return name;
}
@JsonProperty("name")
public void setName(String name) {
this.name = name;
}
@JsonProperty("appID")
public String getAppID() {
return appID;
}
@JsonProperty("appID")
public void setAppID(String appID) {
this.appID = appID;
}
@JsonProperty("entities")
public List<Entity> getEntities() {
return entities;
}
@JsonProperty("entities")
public void setEntities(List<Entity> entities) {
this.entities = entities;
}
}
エンティティPOJO
package com.config;
import java.util.HashMap;
import java.util.Map;
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;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"name"
})
public class Entity {
@JsonProperty("name")
private String name;
@JsonProperty("name")
public String getName() {
return name;
}
@JsonProperty("name")
public void setName(String name) {
this.name = name;
}
}
と私は、ファイルから値を印刷するには、以下のコードを使用しています。私は取得しています
MainClass obj = new MainClass();
ObjectMapper mapper = new ObjectMapper();
try {
// Convert JSON string from file to Object
ConfigDetails details = mapper.readValue(new File("properties.json"), ConfigDetails.class);
System.out.println(details.getAppID());
List entities = details.getEntities();
for (Object entity : entities) {
System.out.println(entity.toString());
}
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
出力は
MyAppId
[email protected]
[email protected]
ここ
代わりの値が利用可能な印刷、それはハッシュコードを印刷してあります。どうすれば値を印刷することができますか教えてください。そう、あなたはそれがStringに「エンティティ」を変換するために何を意味するのか定義していない
MainClass obj = new MainClass();
ObjectMapper mapper = new ObjectMapper();
try {
// Convert JSON string from file to Object
ConfigDetails details = mapper.readValue(new File("properties.json"), ConfigDetails.class);
System.out.println(details.getAppID());
List entities = details.getEntities();
for (Entity entity : entities) {
System.out.println(entity.getName());
}
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}