JSONArray和JSONObject以及JSONConfig

005_JSONArray对象静态方法 1. JSONArray.fromObject静态方法 1.1. static JSONArray fromObject(Object object)静态方法, 把Java对象转换为JSONArray对象。json-lib底层, 会创建一个JsonConfig对象使用。 1.2. static JSONArray fromObject(Object object, JsonConfig jsonConfig)静态方法, 把Java对象转换为JSONArray对象。并指定一个JsonConfig。 1. 阅读详情

JSON数据的其中一个应用场景就是前端的ajax请求java后台数据,后台把封装了数据库中的数据的对象(Object、Array、List、Map、Set等)转换成JSON数据返回,反之也可将JSON数据转化为java对象。

以下是常用的用于解析JSON数据的工具类:

JSONArray,主要用于将Array和List转化为JSON对象,其数据形式为:[{“key1”:”value1”,”key2”:”value2”},{…},…]

JSONObject,主要用于将Object和Map转化为JSON对象,其数据形式为:{“key1”:”value1”,”key2”:”value2”,…}

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

commons-lang.jar
commons-beanutils.jar
commons-collections.jar
commons-logging.jar 
ezmorph.jar
json-lib-2.2.2-jdk15.jar

其组合形式为:

{
    "code": 0,
    "msg": "",
    "data": [
        {
            "id": "1",
            "name": "张三",
            "age": 18
        },
        {
            "id": "2",
            "name": "李四",
            "age": 19
        },
        {
            "id": "3",
            "name": "王五",
            "age": 20
        }
    ],
    "count": "3"
}

示例:

//示例代码

JSONConfig,JSON-lib提供了JsonConfig对象,该对象能够深刻影响Java对象转成json字符串的行为。

1.setExcludes(String[]);,用于排除不需要转化为JSON数据的字段

应用场景一:当需要转化的对象存在一对一或一对多的关系时,会造成死循环
// 伪代码
public class User{
    private String userId;
    private Set<Book> books;
}
public class Book{
    private String bookId;
    private User user;
}
public class Test{
    // 因为从数据库查询出来的数据都会封装成对象,并且保持数据之间的关系,比如一对多
    User user = new User(1);
    user.books.add(new Book(1, user));
    user.books.add(new Book(2, user));
    // 这里如果没有加入config排除book里的user,JSONObject就会首先转化user的属性,从books进去后又会转化user,然后又转化books,造成死循环
    JSONConfig config = new JSONConfig();
    config.setExcludes(new String[]{"books.user"});
    JSONObject jsonObject = JSONObject.fromObject(user,config);
}

注意:JSONObject和JSONArray的转化是通过调用对象里的get方法来实现的,而不是根据字段名

// 伪代码
public class User{
    private String id;
    public String getUserId(){
        return id;
    }
}
public class Test{
    public void test(){
        User user = new User(1);
        JSONObject jsonObject = JSONObject.fromObject(user);
    }
    // 结果为:{"userId":"1"}
}
vivado2020.2安装教程:Windows平台完整指南 手把手带你完成vivado2020.2安装教程,覆盖下载、配置到验证全过程,解决常见安装问题,确保在Windows平台顺利部署开发环境,适合初学者快速上手。 阅读详情

相关推荐

禅道二次开发(一):从零搭建本地开发与调试环境

本文详细介绍了禅道二次开发的第一步:从零搭建本地开发与调试环境。通过部署官方一键安装包、配置端口与防火墙、连接数据库、设置Samba文件共享,并最终在VSCode中配置PHP智能感知与Xdebug调试,手把手教你建立一个隔离、高效的专属开发工作台,为后续的代码修改与功能扩展奠定坚实基础。

weixin_29003437的博客 321

java jsonobject_[转]java中JSONObject与JSONArray的使用详细说明及有关JSON的工具类

JSONObject与JSONArray的使用一、JAR包简介要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:1.commons-lang.jar2.commons-beanutils.jar3.commons-collections.jar4.commons-logging.jar5.ezmorph.jar6.json-lib-2.2.2-jdk15.ja...

weixin_33318222的博客 404

Dify + mem0插件实战:如何让AI记住你的饮食习惯(附完整代码)

本文通过Dify平台与mem0插件实战,详细演示了如何为AI助手构建长期记忆系统,使其能记住并理解用户的复杂饮食习惯(如过敏源、饮食偏好)。文章提供了完整的工作流配置与Python代码示例,帮助开发者实现跨会话的个性化饮食建议,解决AI对话中的“健忘”问题。

lg888的博客 1093

JSONObject(JSON与对象的转换)以及JsonConfig使用说明

代码如下: JSONObject json=new JSONObject(); JsonConfig config = new JsonConfig(); config.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor("yyyy-MM-dd")); JSONArray jsonArray=JSONArr...

qw1820209805的博客 7087

Stata实战:RCS限制立方样条非线性关系建模与P值解读全攻略

本文详细介绍了在Stata中使用RCS限制立方样条进行非线性关系建模的全过程,包括数据准备、节点设置、COX回归模型构建、结果可视化及P值解读。通过乳腺癌临床数据实例,展示了如何捕捉年龄与死亡风险之间的复杂非线性关系,并提供了实用的Stata代码和图形优化技巧。

weixin_30650039的博客 471

MATLAB实战:64QAM通信系统仿真全流程解析(附误码率优化技巧)

本文提供了一份完整的64QAM通信系统MATLAB仿真实践指南。从系统架构设计、发射端格雷码映射与脉冲成形,到信道建模、接收端同步与均衡,详细解析了全链路实现流程。文章重点分享了误码率曲线与理论值偏差的排查清单和深度优化技巧,帮助工程师构建工业级精度的仿真模型,解决高阶调制系统仿真的核心难题。

jenkins8butler的博客 404

002_JSONObject、JSONArray和JsonConfig对象简单使用

1. JSONObject对象 1.1. JSONObject是一个无序的键值对集合。它的外部文本形式是一个用大括号括起来的字符串, 使用冒号分割键和值, 并且是用逗号分隔多个值。 1.2. JSONObject可以添加boolean、int、long、Double、String、JSONNull、JSONObject、JSONArray、Object。 1.3. JSONObject可以把JSONObject对象转换为Java对象, 也可以把Map、JavaBean对象转换为JSONObject对象

aihiao的专栏 888

手把手教你用RC桥式振荡器生成1Hz-1MHz正弦波(附完整电路图)

本文详细介绍了如何从零构建RC桥式振荡器,实现1Hz-1MHz正弦波的生成。通过核心元件选型、参数设计、电路搭建与优化等步骤,帮助读者掌握振荡器的工作原理和实战技巧。特别适合电子实验和信号处理领域的初学者和工程师,附完整电路图和常见问题解决方案。

weixin_30338481的博客 466

JsonArray:fromObject数据有默认值情况解决,JsonObject.fromObject

JsonConfig jsonConfig = new JsonConfig(); json.registerDefaultValueProcessor(BigDecimal.class,new DefaultValueProcess(){ public Object getDefaultValue(Class type){ return ""; } }); Js...

yubin1285570923的博客 1273

绕过Cloudflare的两种简便方案

绕过Cloudflare的两种简便方案

自成背后的博客 1万+

YOLO11,ultralytics-main源代码目录结构详解

本文详细介绍了YOLO11框架的ultralytics-main源代码目录结构,帮助用户更好地理解和使用YOLO模型。主要目录包括:docker文件夹,包含多种Docker镜像文件,适用于不同硬件环境;docs文件夹,存放YOLO的说明文档;examples文件夹,提供YOLO使用的示例代码;tests文件夹,包含单元测试模块;ultralytics文件夹,为核心代码所在,包含推理逻辑、配置、数据处理等模块。其中,engine文件夹负责训练和推理引擎,models文件夹存放模型架构,nn定义神经网络结构

qq_30279827的博客 1282

java json过滤_JSONObject属性过滤 JSON序列化属性过滤

Java用JSONObject.fromObject()或者JSONArray.fromObject()的时候因为Bean的关联会出现很多错误,很多时候,我们也不需要一个Bean中所有的属性都序列化成Json数据格式,而fromObject默认是序列化所有的,因为我们需要过滤一些不常用或者不需要的属性。package com.renyiwei.wydns.struts2.action.api;im...

weixin_39923599的博客 1312

通过分子模板构建随机分布在溶液中的纳米颗粒(一)

通过分子模板构建随机分布在溶液中的纳米颗粒 要实现的目标: 1、可以循环建立多个水分子溶液的模型; 2、针对不同水分子数,自动创建文件夹; 3、运行完毕将所有结果自动存储在对应文件夹里; 分子模板的具体教程请见我的博客: https://blog.youkuaiyun.com/qq_43689832/article/details/104443175 1、首先,我们先建立纳米颗粒的分子模板,命名为p_30.txt: 包括两种原子类型。具体格式如下: # LAMMPS molecule file makin.

Rockyoung 2650

JsonObject、JsonArray操作json的个人总结

介绍 JsonObject、JsonArray之前,先介绍下JsonConfig JsonConfig: setClassMap(Map classMap)设置json属性类型,上json里的其中值为List时,可通过此属性设置属性类型 Map jMap = new HashMap(); jMap.put("contactPersonList",ContactPerson.cl...

weixin_30686845的博客 380

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

visio安装包

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

使用 JsonConfig 排除 实体对象 建立在一对多的关联关系上 jsonConfig.setExcludes

JSONObject result=new JSONObject();  JsonConfig jsonConfig=new JsonConfig();  //setExcludes 他是排除 实体类 SaleChance  否则会出现死循环 在这里用不到这个类  //saleChance是对应 CusDevPlan实体类里的 private SaleChance saleChance;

JesseCary的博客 1589

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jsonobject转list对象_JSON--List集合转换成JSON对象详解

1. 简单的手动放置 键值对 到JSONObject,然后在put到JSONArray对象里List al = articleMng.find(f);System.out.println(al.size());HttpServletResponse hsr = ServletActionContext.getResponse();if(null == al){return ;}for(Articl...

weixin_39618806的博客 4745

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

net.sf.json.JSONException: 'object' is an array. Use JSONArray instead

list集合转换JSON出错误 意思是:对象”是一个数组。使用jsonarray代替。 解决方法: 将JSONObject替换为JSONArray 代码: JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); JSONArray ...

无知人生,记录点滴 3310

net sf json JSONException 'object' is an array Use JSONArr

net sf json JSONException 'object' is an array Use JSONArr

hftyfdg的博客 540

JAVA 对象转换为JSON

cfg.setExcludes(new String[] {“待过滤属性1”, “待过滤属性2”, ..., “待过滤属性n”});使用jsonConfig对象的setExcludes()方法,传入参数为待过滤属性组成的数组。//过滤List集合中的Customer对象的id属性不生成JSON。//过滤Customer对象的id属性不生成JSON。//包含多个对象的List集合转换为JSON格式。1、Java对象列表转换为JSON对象数组,并转为字符串。3、过滤不需要转换为JSON格式的属性。

u200814342A的博客 2万+

JAVA利用反射映射JSON对象为JavaBean

关于将JSONObject转换为JavaBean,其实在JSONObject中有对于的toBean()方法来处理,还可以根据给定的JsonConfig来处理一些相应的要求,比如过滤指定的属性 //返回true表示过滤掉该属性 jsonConfig.setJsonPropertyFilter(...

403

JSON数据形式工具类

WEB开发中经常要用到JSON数据形式,如何把一个类转换成一个JSON数据形式是经常会遇到的问题。特别见到的例子是前台数据的展现要用到JSON数据形式。这里将如何把一个来转换成JSON数据形式。常用到json-lib.jar包中的JsonConfig类、JSONArray和JSONObject。当然我们可以进一步对这些进行封装到达更好的效果 这里有一个 JsonConfig经常是起到一个过滤器...

吾日五省我身! 152

JSONObject和JSONArray的操作和常见问题

2018.09.13 更新: 将查询出来的Java对象转换为JSONObject时,报了如下错误 java.lang.IllegalArgumentException at java.sql.Date.getHours JSONException 经过一番折腾,大体知道如何规避这个错误,就是使用JSONConfig转换日期类型 JsonConfig config = new JsonC...

cblstc的博客 1464

java JsonArray统一添加key

以前组装jsonArray都是通过遍历list对象,然后做成jsonObject,然后再放到数组里面。 今天发现一个好方法,记录一下~ 可统一把key放到一个数组里面,然后做成一个jsonConfig。具体看代码,orders是一个list要将list做成一个jsonArray: JsonConfig jsonConfig = new JsonConfig(); Stri...

weixin_30426065的博客 1432

JSONArray

环境 commons-beanutils-1.8.3.jar commons-collections-3.1.jar commons-lang-2.6.jar commons-logging-1.1.1.jar ezmorph-1.0.6.jar json-lib-2.4-jdk15.jar API JSONArray是一个有序的值序列。它的外部文本形式是一个用方括号括起来的字符串...

番茄炒西红柿 4887

JSONArray数据转换成java List

package no.integrasco.ingentia.news.qaedition;public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name...

weixin_30551947的博客 110

java filter 注解_通过注解实现JSONPropertyFilter

之前发表的文章涉及到JSONObject JSONArray属性过滤时,都是通过判断来实现的,那如果我们要在多处进行过滤的话,就会重复写很多代码,而且也不好修改。所以,这里我设计了一个注解annotation类,通过标注注解来实现JSONObject 和JSOnArray的属性过滤。1、编写注解类package com.renyiwei.wydns.json.annotation;import j...

weixin_29053577的博客 686
上一篇: 权限管理
下一篇: 微信小程序与Java的Servlet通信小示例
章 鱼
博客等级 码龄10年 203粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值