2
我正在嘗試將json文件讀入java HashMap
。 這是我的JSON文件使用jackson將json文件讀入HashMap
{
"fieldA" : {
"Preis": "100,00 €",
"Text_de": "foo",
"Text_en": "bar",
"Materialnummer": "32400020"
},
"fieldB" : {
"Preis": "90,00 €",
"Text_de": "jeha",
"Text_en": "bla",
"Materialnummer": "32400030"
}
}
我實際的問題是內容,所創建的地圖是空的,FIELDA不會在我的測試情況下被發現。但讀取文件時不會出現異常。
@Test
public void readJsonFile() throws Exception {
File inFile = new File(
getClass().getClassLoader().getResource("doPrefill6_17.json").getFile()
);
assertTrue(inFile.exists());
assertTrue(inFile.canRead());
Map<String, IpadField> fieldMap = JsonCreator.readJsonFromFile(inFile);
assertNotNull(fieldMap);
assertTrue(fieldMap.containsKey("fieldA"));
}
實施
public static Map<String,IpadField> readJsonFromFile(File inFile) throws IOException {
Map<String, IpadField> map = new HashMap<>();
ObjectMapper mapper = new ObjectMapper();
byte[] json = Files.readAllBytes(inFile.toPath());
mapper.readValue(json, new TypeReference<Map<String, IpadField>>(){});
return map;
}
這裏的POJO
public class IpadField {
@JsonIgnore
public String fieldname;
public String Text_de;
public String Text_en;
public String Preis;
public String Materialnummer;
public IpadField(){
}
@Override
public String toString() {
return "IpadField{" +
"fieldname='" + fieldname + '\'' +
", Text_de='" + Text_de + '\'' +
", Text_en='" + Text_en + '\'' +
", Preis='" + Preis + '\'' +
", Materialnummer='" + Materialnummer + '\'' +
'}';
}
public IpadField(String fieldname, String text_de, String text_en,
String preis, String materialnummer) {
this.fieldname = fieldname;
Text_de = text_de;
Text_en = text_en;
Preis = preis;
Materialnummer = materialnummer;
}
}
任何想法?
OMG,facepalm ....謝謝,我沒有任何藉口:-) –
沒問題,它發生。隨時接受我的答案:P –