gpt4 book ai didi

java - 如何使用 Jackson JSON 将值存储到 Java

转载 作者:行者123 更新时间:2023-12-01 09:45:34 26 4
gpt4 key购买 nike

我很难理解如何将映射值放入数组以及如何迭代该数组。

测试.json

 [
{
"Name": "Bob",
"Nationality": "",
"City": "Chicago",
"Phone" : "451232424234"
},

......continues with more objects
]

测试模板.java

 //imports
@JSONInclude(Json.Include.Non_NULL)
@JsonPropertyOrder({"Name,"Nationality","City","Phone"})

Public class testTemplate {

@JsonProperty("Name")
private String userName;

@JsonProperty("Nationality")
private String nation;

@JsonProperty("City")
private String city;

@JsonProperty("Phone")
private String phone;

@JsonProperty("Name")
public String getName (String userName) {
this.userName = userName;
}

@JsonProperty("Nationality")
public String nation (String nation) {
this.nation = nation;
}

@JsonProperty("City")
public String city (String city) {
this.city = city;
}

@JsonProperty("Phone")
public String phone (String phone) {
this.phone = phone;
}

public String toString() {
return ToStringBuilder.reflectionToString(this);
}

testParse.java

Public Class testParse {
List<testParse> test;
ObjectMapper mapper;

protected void setUp() throws IOException {
mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT();
test = mapper.readValue(this.getClass().getResourcesAsStream("test.json"),
mapper.getTypeFactory().constructCollectionType(List.class, testParse.class));

我需要首先帮助澄清代码到底在做什么,以及如何将 JSON 属性(姓名、国籍、城市、电话)放入 Java 中。

我的理解是 testTemplate 文件创建将保存属性的字符串,然后 testParse 文件具有映射器功能(来自 Jackson),可以读取 json 并将所有内容放入“test”(作为数组?)

我的目标是在 testParse 中,如果所有内容都在“test”中,那么我会仔细阅读它,然后开始将其拉出来并将其放入文件夹列表中。

 public static Map<String, String> userName throws IOException {
Map<String, String> folderList = new TreeMap<>();
//Don't know how, but iterate through "test"
LineIterator it = new LineIterator(//the method used to read the json file);
try {
while(it.hasNext()) {
String line = it.nextLine();
folderList.put(userName,nation) //can I also put city and phone at once as well or should I create another put: folderList.put(userName, city)
return folderList;

如何做到这一点?使用jackson映射器后是否有更好的方法将json的属性放入folderList中?

最佳答案

实际上,testTemplate 不生成任何东西,Jackson 在这里所做的只是从“test.json”中获取 String 形式的数据,然后使用 Reflection 读取 testTemplate.java 的格式。基于模板,它只需添加到 ObjectMapper 对象的设置,Jackson 会将 test.json 转换为 Java 对象数组。
P/S:不需要在POJO类的属性和get函数中都添加注解,只需要在get函数或属性中添加注解,对于Jackson来说就足够了。

关于java - 如何使用 Jackson JSON 将值存储到 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38079180/

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