gpt4 book ai didi

java - 在java中的循环中动态使用多个setMethods

转载 作者:行者123 更新时间:2023-11-29 08:34:37 24 4
gpt4 key购买 nike

我有这样的java代码:

JSONObject jsonObj = new JSONObject(output);
JSONArray json_response = jsonObj.getJSONArray("DataList");
for (int i = 0; i < json_response.length(); i++) {
JSONObject jsonobject = json_response.getJSONObject(i);
Tblshop tblshop = new Tblshop();
tblshop.setSHID(jsonobject.getInt("SHID"));
tblshop.setShimagename(jsonobject.getString("ShImgName"));
tblshop.setShname(jsonobject.getString("ShName"));
tblshop.setShoff(jsonobject.getInt("ShOff"));
tblshop.setShstate(jsonobject.getInt("ShState"));
tblshop.setShstar(jsonobject.getInt("ShStar"));
tblshop.setShtask(jsonobject.getInt("ShTask"));
tblshop.setShvarification(jsonobject.getInt("ShVarification"));
tblshopDao.insertOrReplace(tblshop);
}

但我不想一个一个地使用一个集合,我想用循环或其他东西来做,只需要模型(结构名称),然后循环用字段名来做。

我该怎么办(模型字段名称与 Json 数组字段名称完全一样)。

最佳答案

如果您已经正确地为 JSON 数组建模,您可以使用下面的代码将您的 JSON 数组更改为您的对象:

public static <T> T fromJson(String jsonString, Class<T> classType) {
ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(Include.NON_NULL);
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
mapper.registerModule(new JodaModule());

try {
return mapper.readValue(jsonString, classType);
} catch(IOException var4) {
var4.printStackTrace();
return null;
}
}

例如:JSON 数组如:

["name":"alireza" , "city":"tehran"]

创建一个类:

public class MyClass {

private String name;
private String city;

public void setName(String name) {
this.name = name;
}

public void setCity(String city) {
this.city = city;
}

}

然后您可以从 JSON 数组中创建一个对象,例如:

MyClass obj = fromJson(yourJSON, MyClass.class);

关于java - 在java中的循环中动态使用多个setMethods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45117609/

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