JSONObject和JSONArray使用

JSON解析之JSONObject与JSONArray的使用 一、JAR包简介 json-lib包是可以将beans,collections,maps,arrays等类与XML和JSON格式相互转换的功能包。JSONObject和JSONArray的正常使用需要如下Jar包:       1.commons-lang.jar       2.commons-beanutils.jar       3.commons-collections 阅读详情

1.所依赖JAR包

要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:

  1. commons-lang.jar
  2. commons-beanutils.jar
  3. commons-collections.jar
  4. commons-logging.jar 
  5. ezmorph.jar
  6. json-lib-2.2.2-jdk15.jar

2.Demo

 2.1 应用场景:

  •    后台的java类,如实体类、List、Set、Map转成json字符串发送到其它项目或者jsp端
  •   jsp端或者其它项目发送过来的json字符串,需要解析成l实体类、List、Set、Map等java类

 2.2 Student实体类

复制代码
package json;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class Student {
     private int id;
     private String name;
     private String age;
     private Date birthDay;
     private List list;
     private Set set;
     private Map map;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    
    public Date getBirthDay() {
        return birthDay;
    }
    public void setBirthDay(Date birthDay) {
        this.birthDay = birthDay;
    }
    
    public List getList() {
        return list;
    }
    public void setList(List list) {
        this.list = list;
    }
    public Set getSet() {
        return set;
    }
    public void setSet(Set set) {
        this.set = set;
    }
    
    public Map getMap() {
        return map;
    }
    public void setMap(Map map) {
        this.map = map;
    }
    @Override
    public String toString() {
        return "Student [id=" + id + ", name=" + name + ", age=" + age
                + ", birthDay=" + birthDay + ", list=" + list + ", set=" + set
                + ", map=" + map + "]";
    }
    
     
}
复制代码

2.3 java对象序列化成json对象时,处理日期的处理类

复制代码
package json;

import java.text.SimpleDateFormat;
import java.util.Date;

import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;
/**
 * 
 * @author yangguojun
 * java实体类转jsonObject时,日期处理类
 */
public class JsonDateValueProcessor implements JsonValueProcessor {
     /**
      * 集合中实体类日期处理
      */
    @Override
    public Object processArrayValue(Object value , JsonConfig config) {
        // TODO Auto-generated method stub
        return processor(value);
    }
    /**
     * 当个实体类日期处理
     */
    @Override
    public Object processObjectValue(String propertyName, Object value, JsonConfig config) {
        return processor(value);
    }
    /**
     * 把日期对象转为字符串
     * @param value
     * @return
     */
    private Object processor(Object value){
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        if(value instanceof Date){
            return format.format(value);
        }
        return value == null ? "":value.toString();        
    }

}
复制代码

2.4 测试类

复制代码
package json;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;

import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;

public class JsonDemo {
    public static void main(String[] args) {
        //创建JSON对象的第一种方法
        JSONObject jsonObj1 = new JSONObject();
        jsonObj1.put("id", "1");
        jsonObj1.put("name", "rose");
        jsonObj1.put("age", 25);
        System.out.println("jsonObj1"+jsonObj1);
        //创建JSON对象的第二种方法
        HashMap<String, Object> map = new HashMap<String,Object>();
        map.put("id", "2");
        map.put("name", "zhangsan");
        map.put("age", "25");
        JSONObject jsonObj2 = JSONObject.fromObject(map);
        System.out.println("jsonObj2"+jsonObj2);
        
         //创建一个JsonArray方法1
        JSONArray jsonArray = new JSONArray();
        jsonArray.add(0, "ZHULI");
        jsonArray.add(1, "30");
        jsonArray.add(2, "ALI");
        System.out.println("jsonArray1:" + jsonArray);
        
        //创建JsonArray方法2
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("柯文修");
        arrayList.add("23");
        arrayList.add("5");
        System.out.println("jsonArray2:" + JSONArray.fromObject(arrayList));
        
        //创建一个复杂JSON对象(JSON对象里有JSON数组)
        JSONObject jsonObj3 = new JSONObject();
        jsonObj3.put("id", 3);
        jsonObj3.put("name", "lisi");
        jsonObj3.put("age", 23);
        jsonObj3.put("arrayList", arrayList);
        System.out.println("jsonObj3"+jsonObj3);
        
        //创建一个复杂JSON数组(JSON数组里含有JSON对象)、
        JSONArray jsonArray3 = new JSONArray();
        jsonArray3.add("4");
        jsonArray3.add("wangwu");
        jsonArray3.add("26");
        jsonArray3.add(map);
        System.out.println("jsonArray3"+jsonArray3);       
        //把JSON字符串转为JSON对象
        String jsonString = "{\"id\":3,\"name\":\"lisi\",\"age\":23,\"arrayList\":[\"ZHULI\",\"30\",\"ALI\"]}";
        JSONObject jsonObj4 = JSONObject.fromObject(jsonString);
        System.out.println(jsonObj4.get("id")+"--"+jsonObj4.get("name")+"--"+jsonObj4.get("age")+
                "--"+jsonObj4.get("arrayList"));
        //java实体类转为JSONObject
        Student stu = new Student();
        stu.setId(1);
        stu.setName("罗志茂");
        stu.setAge("23");
        stu.setBirthDay(new Date());
        stu.setList(arrayList);
        HashSet<Object> set = new HashSet<>();
        set.add("6");
        set.add("戚广辉");
        set.add("25");
        stu.setSet(set);
        stu.setMap(map);
        JsonConfig jsonConfig = new JsonConfig();
        jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());
        JSONObject jsonObj5 = JSONObject.fromObject(stu,jsonConfig);
        System.out.println("序列化:"+jsonObj5);
        //json转java实体类
        Student student = (Student) JSONObject.toBean(jsonObj5, Student.class);
        System.out.println("反序列化:"+student);
       }
   
       
}
复制代码

 2.5 测试结果

  jsonObj1{"id":"1","name":"rose","age":25}
  jsonObj2{"id":"2","age":"25","name":"zhangsan"}
  jsonArray1:["ZHULI","30","ALI"]
  jsonArray2:["柯文修","23","5"]
  jsonObj3{"id":3,"name":"lisi","age":23,"arrayList":["柯文修","23","5"]}
  jsonArray3["4","wangwu","26",{"id":"2","age":"25","name":"zhangsan"}]
  3--lisi--23--["ZHULI","30","ALI"]
 序列化:{"age":"23","birthDay":"2016-08-13 23:22:27","id":1,"list":["柯文修","23","5"],"map":{"id":"2","age":"25","name":"zhangsan"},"name":"罗志茂","set":  ["戚广辉","6","25"]}
 反序列化:Student [id=1, name=罗志茂, age=23, birthDay=Sat Aug 13 23:22:27 CST 2016, list=[柯文修, 23, 5], set=[戚广辉, 6, 25], map={id=2,  name=zhangsan, age=25}]

jsonObject, jsonArray所需的包. jsonObject, jsonArray所需的6个jar包 json-lib-2.4-jdk15.jar; ezmorph-1.0.6.jar; commons-logging-1.1.1.jar; commons-lang-2.4.jar; commons-collections-3.2.1.jar; commons-beanutils-1.8.3.jar; 立即下载

相关推荐

CANdelaStudio实战:如何用19服务快速编辑DTC快照数据(附Excel模板)

本文详细介绍了在CANdelaStudio中利用19服务高效编辑DTC快照数据的进阶技巧。通过导出DTC池至Excel进行批量编辑,结合‘Copy from DTC Pool’功能实现配置复用,并分享了构建自定义Excel模板与字段映射的实用方法,帮助工程师将繁琐的手动配置转化为工程化的批量处理,大幅提升诊断数据库开发效率。

weixin_29230773的博客 190

详谈JSONObject和JSONArray的使用

在Java中常用到JSONObject和JSONArray,经常用到的无非是com.alibaba.fastjson和net.sf.json下的,个人觉得com.alibaba.fastjson下的比较好用。下面来详细了解两种依赖下的基础使用吧!

程序羊的博客 2万+

三大主流交易接口实战指南:XTP、CTP与数字货币API的实盘接入解析

本文深入解析了量化交易系统实现实盘交易的关键环节,聚焦于三大主流交易接口的实战接入。详细介绍了证券领域的XTP、期货领域的CTP以及数字货币交易所API的核心特性、代码封装要点与风控实践,并提供了多市场接口整合的统一架构方案,为开发者打通量化交易的“最后一公里”提供了一份接地气的实战指南。

win55的博客 1373

java jsonarray jar包_jsonarray用需要什么jar包?

展开全部jsonarray所必需的6个jar包:1、commons-beanutils-1.7.0.jar2、commons-collections-3.1.jar3、commons-lang-2.5.jar4、commons-logging.jar5、ezmorph-1.0.3.jar6、json-lib-2.1-jdk15.jarJAR文件e5a48de588b6323131333532363...

weixin_31842821的博客 2520

【NLP】文献翻译4——CH-SIMS:中文多模态情感分析数据集与细粒度的模态注释

CH-SIMS: A Chinese Multimodal Sentiment Analysis Dataset with Fine-grained Annotations of Modality摘要1. 介绍2. 相关工作2.1 多模态数据集2.2 多模态情感分析2.3 多任务学习3. CH-SIMS 数据集3.1 数据获取3.2 标注3.3 特征提取4. 多模式多任务学习框架4.1 单模态子网4.2 特征融合网络4.3 优化目标5. 实验5.1 基准5.2 实验的细节5.3 结果和讨论5.3.1 与

YoungSeng's Blog 1万+

Cadence 设计实践笔记-小哥allegro 2层板笔记

规范建立文件夹本章节主要跟着B站PCB入门首选视频-小哥Cadence Allegro 2层板视频,结合自己的实践一步步完成一个完整的PCB板的设计。规范建立文件夹建立八个文件夹我使用的Cadence 17.4 有些差异原理图绘制原图绘制首先要熟悉原理图工作原理工作原理下面是这个项目的原理图重点关注电源新建原理图库打开Cadence 软件创建项目新建工程 File ==========》Project我这里选择了Enable PSPice 试试能不能仿真,新建项目如下。

我的专栏 1479

JSONArray操作汇总,排序,筛选,分组

【代码】JSONArray操作汇总,排序,筛选,分组。

当作记事本用 1万+

liquibase扩展支持达梦数据库

近期项目中需要支持国产数据库,需要liquibase底层支持达梦数据库,记录下操作的详细步骤以便分享。 1.liquibase支持的数据库很多如MySQL, PostgreSQL, Oracle, Sql Server, DB2。但是达梦数据库并不支持,所以需要新建DMDatabase类来适配达梦数据库。达梦语法和Oracle很像所以只需要复制liquibase-core下的Oracle Database做些修改就可了。以下为需要修改的地方 public class DMDatabase extends A

qq_43677719的博客 5472

一文让你熟练使用 JSONObject 和 JSONArray

fastjson 中的 JSONObject 与 JSONArray 的使用

m0_54355172的博客 1556

【AI大模型应用开发实战】大型语言模型评估指南白皮书(LLM Eval)

近年来,大型语言模型(LLM)在自然语言处理领域取得了重大进展,例如 GPT-3 和 Chat-GPT。这些模型经过大型数据集的训练,在文本相关任务中表现出卓越的能力,甚至超越了人类。本文将简要介绍如何验证 LLMs 性能的评估指标。自然语言处理(NLP)是人工智能的一个领域,涉及计算机和人类语言之间的交互。NLP 的基本任务之一是语言建模 (LM),它涉及构建统计模型来分析和生成自然语言。LM 已成为推进机器语言智能的关键方法,使机器能够执行机器翻译、情感分析和对话系统等任务。

AI天才研究院 1012

【C2000系列DSP的Bootloader详解】如何利用脚本自动合并Bin文件

本文通过OutconvertBin.py实现了 C2000 Bootloader+UserApp 的「ELF 转 BIN+BIN 合并」全流程自动化,核心优势如下: 架构适配:严格遵循 C28x 16 位大端格式,生成的 BIN 文件可直接烧录; 自动化程度高:一键完成清理、转换、合并,无需手动执行多个命令; 可追溯性:生成 CRC32 校验值,便于验证文件完整性; 量产友好:合并后的merged.bin支持一次性烧录,提升量产效率。

昔时扬尘处 182

JSONObject与JSONArray的使用 jsonobject里面包含jsonarray

好多人用的是json-lib,要用那么多库很麻烦啊,直接eclipse里面用android自带的json就好。 很简单下面我贴下代码 import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; 看这个是自带的json JSONObject param =

chenaini119的专栏 5119

计算机组成原理(第三版)唐朔飞-第一章第二章-课后习题

计算机组成原理

weixin_45735391的博客 7万+

JSONObject与JSONArray的使用

参考自: JSONObject与JSONArray的使用 JSONObject与JSONArray的使用需要的jar包下载 https://mvnrepository.com/artifact/org.json/json/20180130 Files pom (5 KB) bundle (60 KB) View All 中点击bundle即可 源码: 后台创建JSONO...

qq_38409944的博客 6627

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

JSONObject 和 JSONArray

1. 要使用 JSONObject 和 JSONArray,首先引入jar包 &lt;!-- maven项目直接引入该包 --&gt; &lt;dependency&gt; &lt;groupId&gt;com.alibaba&lt;/groupId&gt; &lt;artifactId&gt;fastjson&lt;/artifactId&gt; &lt;versio...

月下泛舟的博客 1645

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

JSONObject和JSONArray的区别

JSONObject是阿里巴巴提供的一个json快速转换工具类,实现了Map接口,通过KeyValue形式存储数据,初始化大小为16,有参构造方法需要传入一个Map。JSONObject只是一种数据结构,可以使用put方法给json对象添加元素。JSONObject可以很方便的转换成字符串,也可以很方便的把其他对象转换成JSONObject对象。JSONObject继承自JSON类JSONObject的数据是用{}来表示的,例如{“id”25}...

qq_44307209的博客 1880

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

JSONObject和JSONArray的基本使用

JSONObject和JSONArray的基本使用

追求卓越583的博客 2229

关于JSONArray转换为JSONObject的问题解决

json格式转换问题

感谢阅读 1504

JSONObject和JSONArray的简单使用

JSONObject和JSONArray的简单使用 前言 一直以来,都是用对象来装请求或响应的数据。这样有好处也有坏处。 好处:将请求或响应的具体数据与对象的属性一一对应起来。方便维护,一般情况下也是推荐使用对象。 坏处:如果收到的请求或响应数据变更了,原来对象属性不满足变更后的请求或响应。这个时候就会报错。如:别人的接口新增了一个返回字段 msgCode,但是咋们定义的响应对象没有这个字段。 ps:很多正式的机构在更新系统后,会发布更新内容,一般会兼容以前的接口。 还有另一外的情况:例如网关系统后者中转系

qq_37700773的博客 1203

JsonObject、JsonArray与JSONObject、JSONArray的生成的一些区别和使用总结

通过代码和运行结果查看一下我们平时一般都是怎么使用JsonObject、JsonArray与JSONObject、JSONArray,以及他们之间的一些区别。 首先说一下最基本的区别: 1.JsonObject、JsonArray需要添加gson jar包,通过com.google.gson来导入。 2.JSONObject、JSONArray是Android原生的json类,通过org.j...

时代新人的博客 1809

JsonArray和JsonObject的遍历方法

在进行遍历之前先了解一下什么是jsonArray什么是jsonObject    1.JSONArray : 数组或字符串[1,2,3]     2.JSONObject : java对象,用{}包裹起来     例如:{”id”:1 , “username”:”wp”}一:JSONArray遍历//新创建一个String类型的jsonArry串 String json = "[{\"0\":{\...

编程浪子 1万+

JSONObject与JSONArray使用区别

(1).区别在于JSONObject是一个{}包裹起来的一个对象(Object),而JSONArray则是[]包裹起来的一个数组(Array),说白点就是一个是数组一个是对象或字符串(2).JSON有两种结构:对象和数组。对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法结构如代码。

m0_61682705的博客 1453

JSONArray和JSONObject的区别

1. JSONArray: [{"key":"value","key2":"value2"},{"key":"value","key2":"value2"},{"key":"value","key2":"value2"}] 或者 [{"key":"value"},{"key":"value"},{"key":"value"}] 示例: 2. JSONObject: ...

Thinkingcao的专栏 5061

JSONObject与JSONArray的区别和常见转换

例如:[{"name":"zhang","password":"123"},{"name":"hang","password":"456"},{"id":"888"},{"token":"aaa"}]结果:[{"zhang":"123","zhou":"546"},{"hang":"21"},{"zang":"888"}]例如:{"name":"zhang","password":"123"}结果:{"zhang":"123","zhou":"546"}

weixin_50622525的博客 5609
上一篇: jenkins+git+maven搭建自动化部署项目环境
下一篇: 利用JAXB实现java实体类和xml互相转换
Footloose_
博客等级 码龄10年 254粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值