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数据转换为实体类的主要内容,如果未能解决你的问题,请参考以下文章
使用 Retrofit 将 JsonArray 转换为 Kotlin 数据类(预期为 BEGIN_OBJECT 但为 BEGIN_ARRAY)
JAVA中,类、对象、实体、实体类、实体对象之间存在怎样的联系??请高手做形象的解释。