JSON对象到POJO动态

时间:2019-05-30 05:26:42

标签: java json pojo

我想将JSON对象数组动态存储到POJO类中,如何在Java中执行此特定操作。

[
{
"history":"L",
"loan":"12345"
"status":1
.
.
},
{
"History":"L",
"loan":"67890"
"status":1
.
.
},
....
]

3 个答案:

答案 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。

您是否在Safely turning a JSON string into an object处查看

答案 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;

现在

  1. 创建一个新的ObjectMapper对象(导入jackson-databind库),
  2. 使用writeValueAsString方法将已解析的JSONArray转换为json字符串,
  3. ,然后再次将其转换为“贷款”类别的列表。
        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数组包含不同的键作为历史记录(第一个   对象)和历史记录(第二个对象)。将其更改为历史,如贷款   类,数据成员是历史。