首页 > 编程语言 >java开发,json转list集合,原生实现

java开发,json转list集合,原生实现

时间:2023-11-04 16:12:29浏览次数:33  
标签:java String list sex json public name

java 是一门面象对象的语言,对象需要先定义,但是在外理网络请求时候会用到json 转成java 对象,虽然现代开发框架中也提供了很多工具和方法直接转换,

但是作为学习者了解 一下底层实现,更能灵活变通

现在有一个json 格式如下

{
  "list": [
    {
      "name": "Tom",
      "sex": "boy"
    },
    {
      "name": "MASC",
      "sex": "boy"
    },
    {
      "name": "Bob",
      "sex": "boy"
    }
  ]
}

 

编写一个java 类

public class Member {
    private String name;
    private String sex;
    public String getName() {
        return name;
} public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } @Override public String toString() { return super.toString(); } }

 

编写一个转换方法

private void parseData(String result) {
    List<Member> list = new ArrayList<>();
    try {
        JSONObject jsonObject = new JSONObject(result);    //result 是json对象,如果不是直接报错
        JSONArray jsonArray = jsonObject.getJSONArray("list");   //这儿list是json 本身的名字叫list        
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject object = jsonArray.getJSONObject(i);     //  JSON 是java 原生方法
            Member member = new Member();
            member.setName(object.getString("name"));
            member.setSex(object.getString("sex"));
            list.add(member);
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }    
//测试打印输出 for (Member member : list) { Log.d("test", member.toString()); } }

  

标签:java,String,list,sex,json,public,name
From: https://www.cnblogs.com/ZzwWan/p/17809460.html

相关文章

  • Java基础之面向对象
    面向对象什么是面向对象?面向对象与面向过程的区别是什么?什么是面向对象?面向对象,就是数据和数据的操作放到一个整体----对象,通过对象来实现某些操作面向对象与面向过程的区别是什么?面向过程是一步一步实现方法,从来实现某些操作。它们两者自己的区别可以用一个大象放冰箱的例......
  • 服务端java接口程序接收到data参数时,中文会变成乱码,这样处理
    学习记录。场景:服务端java接口程序,在接收到请求包,data参数中包含中文,请求时用的编码是UTF-8,但收到后会变成乱码尝试:试了很多办法,包括:Stringbody=IOUtils.toString(request.getInputStream(),StandardCharsets.UTF_8);都无济于事解决:增加系统......
  • IDEA2023 Java web项目配置Tomcat 详细步骤
    1.选择NewProject,设置好项目名和JDK,点击Create2.选择file/打开ProjectStructure  3.在Modules里点击加号选择Web,这样IDEA会帮我们创建好webapp文件夹和web.xml配置文件 4.为项目创建一个web应用artifacts,IDEA在这里会提示,直接点击CreateArtifact就可以自动配置 5.......
  • 二十六、QT发送http请求并解析返回的json数据
    1.使用的模块和类模块:network类:QNetworkAccessManager、QNetworkRequest、QNetworkReply、QJsonDocument、QJsonObject、QJsonArrayQSslSocket::sslLibraryBuildVersionString();:查看当前使用的ssl版本,访问HTTPS时需要使用、复制libcrypto-1_1-x64.dll和libssl-1_1......
  • JavaScript函数变量的生命周期,自执行函数、闭包、反转数组案例及冒泡排序案例
    一、变量的生命周期JavaScript变量的生命期从它们被声明的时间开始。局部变量会在函数运行以后被删除。全局变量会在页面关闭后被删除。二、自执行函数执行函数通常都是定义之后立即执行,以后都不再会调用,所以声明时可以省略函数名,因此自执行函数又叫匿名函数。通用的自执行......
  • java——redis随笔——实战——分布式缓存——哨兵
                                                                           ......
  • 学JAVA用PYTHON重写day01
    packageday01;//JAVAday01importjava.util.Scanner;publicclassDemo03{/*编写收银台小程序,输入个数,单价,金额,输出找零。满100打95折;满300打90折;满500打85折;*/publicstaticvoidmain(String[]args){Scannerscanne......
  • 前端javasript——forEach、map、filter和reduce的使用场景
    (文章目录)⭐前言大家好,我是yma16,不止前端,本文分享关于前端javasript——forEach、map、filter、reduce区别与使用。自我介绍前端->全栈开发,csdn内容合伙人,2023csdn新星计划Node赛道Top1,csdn2023新星计划vue3+ts赛道导师,阿里云社区专家博主,华为云享专家,前端技术栈:vue2v......
  • Java服务中的大文件上传和下载优化技巧分享
    1.分片上传和下载将大文件分割成更小的块或分片,可以减轻服务器负担,提高处理效率。上传示例:importorg.springframework.web.multipart.MultipartFile;importjava.io.RandomAccessFile;importjava.io.File;importjava.io.IOException;publicvoiduploadFile(MultipartFi......
  • 1 JavaScript的基础语法
    JS概念javaScript是用于实现用户交互、动态控制文档的外观和内容,动态控制浏览器操作、创建cookies等网页行为的跨平台、跨浏览器的由浏览器解释执行的客户端脚本语言;特点是基于对象的弱类型语言弱类型语言:是一种弱类型定义的语言,某一个变量被定义类型,该变量可以根据环境......