JSONArray数据转换为实体类

Posted 又又IT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSONArray数据转换为实体类相关的知识,希望对你有一定的参考价值。

TableA、TableB 是根据json数据创建的实体类    建议将json数据放到json.cn

里面格式化

json-lib是一个java类库,提供将Java对象,包括beans, maps, collections, java arrays and XML等转换成JSON,或者反向转换的功能。

import net.sf.json.*;
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;




public class findElectSet {
    /*

     * 取出文件内容,填充对象

     */

    public List<TableA> writeFile(String path) {


        List<TableA> tableAS = new ArrayList<>();

        String sets = ReadFile(path);//获得json文件的内容

        JSONObject jsonObject = JSONObject.fromObject(sets);//格式化成json对象
        Object data = jsonObject.get("data");
        JSONObject jsonObject1 = JSONObject.fromObject(data);
        String list = jsonObject1.getString("list");
        JSONArray jsonArray = JSONArray.fromObject(list);
        List<TableA> tableAList = new ArrayList<>();
        for (Object o : jsonArray) {
            JSONObject jo = JSONObject.fromObject(o);
            TableA tableA = new TableA();
            tableA.setId(jo.getString("id"));
            tableA.setZbbmText(jo.getString("zbbmText"));
            tableA.setCreateDate(jo.getString("createDate"));
            tableA.setTopic(jo.getString("topic"));
            tableA.setCreateUserText(jo.getString("createUserText"));
            tableA.setWh(jo.getString("wh"));
            tableA.setFwrq(jo.getString("fwrq"));


            List<TableB> tableBList = new ArrayList<>();
            String attlist = jo.getString("attlist");
            JSONArray jsonArray1 = JSONArray.fromObject(attlist);
            for (Object jsonArr1 : jsonArray1) {
                JSONObject j = JSONObject.fromObject(jsonArr1);
                TableB tableB = new TableB();
                tableB.setContentId(j.getString("contentId"));
                tableB.setDurl(j.getString("durl"));
                tableB.setTopic(j.getString("topic"));
                tableB.setType(j.getString("type"));
                tableBList.add(tableB);
            }
            tableA.setAttlist(tableBList);
            tableAList.add(tableA);
        }
        return tableAList;
    }
    //读文件,返回字符串
    public String ReadFile(String path) {

        StringBuffer strBuf = new StringBuffer();
        try {
            URL url = new URL(path);
            URLConnection conn = url.openConnection();
            BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
            String line = null;
            while((line = reader.readLine()) != null) {
                strBuf.append(line + " ");
            }
            reader.close();
        } catch (MalformedURLException e) {
            System.out.println();
        } catch (IOException e) {
            System.out.println(e);
        }
        return strBuf.toString();

    }
}
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
        findElectSet f=new findElectSet();
        List<TableA> tableAS = f.writeFile("http://XXXXXXXXXXXXXXXXX");
        System.out.println(tableAS.toString());
    }

}

 

以上是关于JSONArray数据转换为实体类的主要内容,如果未能解决你的问题,请参考以下文章

java实体类怎么转换成json。

使用 Retrofit 将 JsonArray 转换为 Kotlin 数据类(预期为 BEGIN_OBJECT 但为 BEGIN_ARRAY)

json怎么转化为对象,并怎么运用数据

JAVA中,类、对象、实体、实体类、实体对象之间存在怎样的联系??请高手做形象的解释。

json字符串转换为JSONObject和JSONArray

java net.sf.json 如何将javabean的首字母转换为大写