使用Java8流从JSON文件提取JSON对象
我希望从JSON文件中提取JSON对象。关键是,我想得到另一个对象中的第n个json对象。为了简单起见,我举个例子。 为了更好地参考,我在这里附上了我的JSON示例使用Java8流从JSON文件提取JSON对象,java,json,stream,Java,Json,Stream,我希望从JSON文件中提取JSON对象。关键是,我想得到另一个对象中的第n个json对象。为了简单起见,我举个例子。 为了更好地参考,我在这里附上了我的JSON示例 { "header": { "Company Name": "ABC", "Address": "XYZ", "Registration": "XYZq", }, "data": [ { "EmployeeNo": "254535", "DateHire
{
"header": {
"Company Name": "ABC",
"Address": "XYZ",
"Registration": "XYZq",
},
"data": [
{
"EmployeeNo": "254535",
"DateHired": "2019-10-04",
"personalDetails":
{
"Father Name": "ABCD",
"PhoneNumber": "7868868686",
"pstlAdrress": {
"Country": "India",
"Town": "Mumbai"
}
},
}
]
}
从那里,我希望得到字符串格式的Country和Town值。我怎样才能得到同样的。我希望在这里使用Java8的streams概念。提前谢谢 我总是通过com.fasterxml.jackson.databind使用InputStream、FileReader和对象映射器 下面是从您的资源中获取纯JSON字符串的方法:
public String getJsonFromResource(String resource) {
StringBuilder json = new StringBuilder();
try (FileReader fileReader = new FileReader(YOURCLASS.class.getResource(resource).getFile())) {
BufferedReader reader = new BufferedReader(fileReader);
String line;
while((line = reader.readLine()) != null) {
json.append(line);
}
} catch(IOException e) {
e.printStackTrace();
}
return json.toString();
}
这里是将JSON映射为对象的方法:
public YourObject getYourObject(String plainJson) throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
YourObject yourObject = objectMapper.readValue(plainJson, YourObject.class);
return yourObject;
}
//编辑:
要获取存储在另一个对象的字段中的对象,只需创建一个带有特定字段的java类。例如:
public class YourObject {
private YourSecondObject yourSecondObject;
}
objectmapper应该可以自动完成所有操作。到目前为止,您尝试过什么吗?是的,我尝试先将整个消息传递到一个JSON对象,然后使用getstring()函数从该对象中提取单个数据,以提取值。Pojo/Object应该再包含一个引用Pojo/Object。根据Mishra提到的输入Lova的Hanks更改代码。但这个要求就像我需要从一个JSON对象的最内部的对象中提取值一样,该对象上面有两个父对象。@DebasishMishra若您只想获取“内部”值,您可以使用JsonPath