我想将JSON对象数组动态存储到POJO类中,如何在Java中执行此特定操作。
[
{
"history":"L",
"loan":"12345"
"status":1
.
.
},
{
"History":"L",
"loan":"67890"
"status":1
.
.
},
....
]
答案 0 :(得分:2)
您需要进行模型校准。 可以说您的json-string是这样的:
String temp_json_string = "{ \"history\":\"L\", \"loan\":\"12345\", \"status\":\"1\"}";
转到该站点或类似站点,并通过在该链接中粘贴json字符串为temp_json_string生成一个类,并获取类,如果需要,选择getter和setter。
http://www.jsonschema2pojo.org/
创建一个新的gson / jackson对象(导入该maven库或构建jre系统路径),并将字符串转换为该“ BankLoanDetails”类。
Gson gson = new Gson();
BankLoanDetails my_loan_pojo = gson.fromJson(temp_json_string,
BankLoanDetails.class);
您的my_loan_pojo是代表您的json字符串的pojo。
答案 1 :(得分:0)
我正在扩展Akash的答案。
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.type.TypeFactory;
---
ObjectMapper mapper = new ObjectMapper();
List<DTO> list = mapper.readValue(JSONString, TypeFactory.collectionType(List.class, DTO.class));
答案 2 :(得分:0)
首先创建一个类似于以下内容的POJO类:
public class Loan {
private String history;
private String loan;
private int status;
\\ generate getters,setters and toString method
}
现在解析您的json并转换为jSONArray(导入json-简单库),
String path = "path to your json file";
File f = new File(path);
JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader(f));
JSONArray jsonArray = (JSONArray) obj;
现在
ObjectMapper mapper = new ObjectMapper();
String jsonStr = mapper.writeValueAsString(jsonArray);
List<Loan> loanList = Arrays.asList(mapper.readValue(jsonStr, Loan[].class));
for (Loan l : loanList)
System.out.println(l);
注意:您的json数组包含不同的键作为历史记录(第一个 对象)和历史记录(第二个对象)。将其更改为历史,如贷款 类,数据成员是历史。