gpt4 book ai didi

java - 解析时访问 JSON 值

转载 作者:行者123 更新时间:2023-11-30 06:43:34 25 4
gpt4 key购买 nike

我有一个名为 persons.json 的文件:

[
{
"id": 1,
"name": "The Best",
"email": "thenextbigthing@gmail.com",
"birthDate": "1981-11-23"
},
{
"id": 2,
"name": "Andy Jr.",
"email": "usa@gmail.com",
"birthDate": "1982-12-01"
},
{
"id": 3,
"name": "JohnDoe",
"email": "gameover@gmail.com",
"birthDate": "1990-01-02"
},
{
"id": 4,
"name": "SomeOne",
"email": "rucksack@gmail.com",
"birthDate": "1988-01-22"
},
{
"id": 5,
"name": "Mr. Mxyzptlk",
"email": "bigman@hotmail.com",
"birthDate": "1977-08-12"
}
]

我想将此文件解析为 ArrayListFasterXML , 可能是 ObjectMapper()函数,然后能够作为 String 单独访问每个值(id、名称等)在遍历新创建的 ArrayList 时.我怎么能那样做?我什至不知道我可以/应该使用哪种列表来单独访问每个值。我有点被困在这里。 List<???>

最佳答案

首先:

FasterXML uses Jackson underneath to parse/produce json.

现在:要使用 Jackson,首先为您的 json 数据创建一个容器对象,我们称之为 Person

public class Person {
private int id;
private String name, email;
@JsonFormat
(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
private Date birthDate;

//add here getters and setters ...
}

此时,假设您有 pathToPersonsJsonFile 作为包含您的 persons.json 路径的字符串,您可以像这样使用您的文件:

byte[] jsonData = Files.readAllBytes(Paths.get(pathToPersonsJsonFile));
ObjectMapper objectMapper = new ObjectMapper();
Person[] parsedAsArray = objectMapper.readValue(jsonData, Person[].class); //array
ArrayList<Persons> persons = new ArrayList<>(Arrays.asList(parsedAsArray)); //your list

注意:JsonFormat 可以声明您的 json 值的格式。

关于java - 解析时访问 JSON 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51984092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com