JSON--List集合转换成JSON对象

告别虚拟机!用ZYNQ7000和PYNQ 2.6.0打造一个能实时识别人脸的“智能摄像头” 本文详细介绍了如何利用Xilinx ZYNQ7000开发板和PYNQ 2.6.0框架构建实时人脸识别系统。通过硬件加速和嵌入式开发技术,该系统实现了低延迟、低功耗的独立运行能力,适用于边缘计算和物联网应用。文章包含从环境搭建到核心功能实现的完整指南,并提供了性能优化和问题排查的实用技巧。 阅读详情

1. 简单的手动放置 键值对 到JSONObject,然后在put到JSONArray对象里

复制代码
List<Article> al = articleMng.find(f);
            System.out.println(al.size());
            HttpServletResponse hsr = ServletActionContext.getResponse();
            if(null == al){
                return ;
            }
            for(Article a : al){
                System.out.println(a.getId()+a.getDescription()+a.getTitle());
            }
            JSONArray json = new JSONArray();
            for(Article a : al){
                JSONObject jo = new JSONObject();
                jo.put("id", a.getId());
                jo.put("title", a.getTitle());
                jo.put("desc", a.getDescription());
                json.put(jo);
            }
            try {
                System.out.println(json.toString());
                hsr.setCharacterEncoding("UTF-8");
                hsr.getWriter().write(json.toString());
            } catch (IOException e) {
                e.printStackTrace();
            }
复制代码

上述代码JSONArray是引入的org.json.JSONArray包

而用net.sf.json包下JSONArray的静态方法:fromObject(list) 这是网上大多是都是直接用此方法快捷转换JSON,但是对于Hibernate级联操作关联的对象,这个方法就会报错,如果将映射文件中的级联配置去掉就行了。

另外对于list的要求就是其中的元素是字符串或对象,否则JSON不知道你想要的是什么数据。

<many-to-one name="cmsent" column="comment_tid" class="com.fcms.cms.entity.CmsComment" 
        not-null="false" cascade="delete">

但是级联操作毕竟还是得存在,否则以后数据冗余、多余。

解决方法就是:JSONArray subMsgs = JSONArray.fromObject(object, config);

复制代码
JsonConfig config = new JsonConfig();
        config.setJsonPropertyFilter(new PropertyFilter() {
            public boolean apply(Object arg0, String arg1, Object arg2) {
                 if (arg1.equals("article") ||arg1.equals("fans")) {
                        return true;
                    } else {
                        return false;
                    }
            }
        });
复制代码

说明:提供了一个过滤作用,如果遇到关联的对象时他会自动过滤掉,不去执行关联关联所关联的对象。这里我贴出我hibernate中的配置关系映射的代码帮助理解:

复制代码
<!-- 配置话题和团体之间的关系 -->
        <many-to-one name="article" class="com.fcms.nubb.article" column="article_id"/>
        
        <!-- 配置主题帖与回复的帖子之间的关系 -->
        <set name="subMessages" table="sub_message" inverse="true" cascade="all" lazy="false" order-by="date asc">
            <key column="theme_id" />
            <one-to-many class="bbs.po.SubMessage" />
        </set>
复制代码

总结:

1. JSONArray subMsgs = JSONArray.fromObject(subMessages, config);其中config是可选的,当出现上面的情况是可以配置config参数,如果没有上面的那种需求就可以直接使用fromObject(obj)方法,它转换出来的就是标准的json对象格式的数据,如下:

{["attr", "content", ...}, ...]}

2. JSONObject jTmsg = JSONObject.fromObject(themeMessage, config);这是专门用来解析标准的pojo,或者map对象的,pojo对象的格式就不用说了,map的形式是这样的{"str", "str"}。

 

-----------------------------------------------------------  分割 -------------------------------------------------------------------------------------------

 对于JSONArray和JSON之前用到想吐了!!!

但是,最近发现个好东西--fastjson (阿里巴巴温少写的一个将Object转为json数据的工具包)

 

bean

复制代码
package com.nubb.bean;

import java.io.Serializable;

public class Person implements Serializable{
    private static final long serialVersionUID = 1L;
    private String name;
    private int age;
    private String address;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    
    
}
复制代码

 

JsonUtil

复制代码
package com.nubb.test;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.ArrayList;
import java.util.List;

import com.alibaba.fastjson.JSON;
import com.nubb.bean.Person;


public class JSONSerializer {
        private static final String DEFAULT_CHARSET_NAME = "UTF-8";

        public static <T> String serialize(T object) {
            return JSON.toJSONString(object);
        }

        public static <T> T deserialize(String string, Class<T> clz) {
            return JSON.parseObject(string, clz);
        }

        public static <T> T load(Path path, Class<T> clz) throws IOException {
            return deserialize(
                    new String(Files.readAllBytes(path), DEFAULT_CHARSET_NAME), clz);
        }

        public static <T> void save(Path path, T object) throws IOException {
            if (Files.notExists(path.getParent())) {
                Files.createDirectories(path.getParent());
            }
            Files.write(path,
                    serialize(object).getBytes(DEFAULT_CHARSET_NAME),
                    StandardOpenOption.WRITE,
                    StandardOpenOption.CREATE,
                    StandardOpenOption.TRUNCATE_EXISTING);
        }
        
        public static void main(String[] args) {
            Person person1 = new Person();
            person1.setAddress("address");
            person1.setAge(11);
            person1.setName("amao");
            
            Person person2 = new Person();
            person2.setAddress("address");
            person2.setAge(11);
            person2.setName("amao");
            
            List<Person> lp = new ArrayList<Person>();
            lp.add(person1);
            lp.add(person2);
            System.out.println(serialize(lp));
        }
        
}
复制代码

输出:

[{"address":"address","age":11,"name":"amao"},{"address":"address","age":11,"name":"amao"}]

 

其中用到的一个jar包可以去下载: http://pan.baidu.com/s/1nCqNV

51单片机IAP在线升级 51单片机IAP在线升级 爱矽半导体E85F3325单片机IAP在线升级教程,此处可查看更新及demo下载 文章目录前言一、ROM资源二、KEIL有关知识1.BL51连接器:2.LX51连接器:三、Keil其他相关项说明:四、MCU启动文件说明:五、例程BOOTLOADER使用说明六、例程使用可更改说明:七、程序使用通信方式:XMODEM八、APP程序说明九、APP代码升级说明十、代码合并烧写 前言 扩展-IAP 主要用于产品出厂后应用程序的更新作用 ,类似于其他引导装载升级程序的方法,在系统中必须始终 阅读详情

相关推荐

期货缠论实战:文华财经笔中枢指标公式解析与博易大师应用指南

本文深入解析期货缠论实战中的文华财经笔中枢指标公式及其在博易大师平台的应用技巧。详细介绍了笔中枢指标的核心逻辑、公式拆解、参数设置及多周期联合作战策略,帮助交易者提升市场分析能力与交易胜率。特别适合期货交易者学习缠论指标的实际应用。

weixin_42522552的博客 361

JSON转换:实体类和JSONObject互转,List和JSONArray互转(fastjson版)

1.实体类和JSONObject互转 //实体类转为JSONObject JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(xtDmbm)); //JSONObject转为实体类 XtDmbm xtDmbm = JSONObject.toJavaObject(jsonObject, XtDmbm.class); 2.List<T>和JSONArray互转 //List转为JSONArray JSONArra

BellaShang的博客 2万+

保姆级教程:用YOLOv8n模型在RKNN和Horizon平台完成目标检测(附C++部署代码与性能实测)

本文提供了一份详尽的YOLOv8n模型在RKNN和Horizon平台上的部署指南,涵盖环境配置、模型优化、跨平台适配及性能调优。通过实战案例和C++部署代码,帮助开发者在嵌入式设备上高效实现目标检测,显著提升推理性能。

weixin_42659194的博客 469

Fastjson格式转换

1. List转JSONArray List<T> list = new ArrayList<T>(); JSONArray array= JSONArray.parseArray(JSON.toJSONString(list));   2.JSONArray转List JSONArray array = new JSO...

diaogaituo0245的博客 768

Mac上VMware Fusion手动安装VMware Tools实现跨系统复制粘贴

本文详细指导了在Mac的VMware Fusion中手动安装VMware Tools的完整流程,以解决虚拟机与宿主机之间无法复制粘贴的常见问题。通过定位安装镜像、挂载、解压并运行安装脚本,最终实现跨系统无缝数据交换,提升工作效率。

orange的博客 701

Xilinx Vitis 2020.1中Microblaze SREC SPI Bootloader初始化失败的调试与修复指南

本文详细解析了在Xilinx Vitis 2020.1开发环境中,Microblaze SREC SPI Bootloader初始化失败的常见原因与解决方案。核心问题通常源于Flash上电时序或软件配置,如`serial_flash_family`参数未生效、链接脚本设置不当或BRAM初始化文件选择错误。文章提供了从硬件配置检查、工程设置修正到代码级添加重试机制的完整调试路径,帮助开发者快速定位并修复启动故障,确保系统稳定启动。

weixin_29163857的博客 188

Java中的List<T>对象与Json格式的字符串的相互转换

对象与Json的相互转换

m0_47720013的博客 9525

【如何学习CAN总线测试】——CAN物理层测试

随着智能电动汽车行业的发展,众多的测试人员也加入到汽车电子测试行业中,而CAN网络是汽车上常见的网络之一,对于新加入的测试人员,不知道CAN网络该如何测试、用例如何设计,本章就就主要介绍CAN网络的物理层测试。

测试领域技术分享 1万+

java中list怎么转换为jsonobject

Java中List转换为JSONObject的实现与示例 在Java开发中,我们经常需要将数据从一种格式转换为另一种格式,以适应不同的使用场景。例如,将Java中的List转换为JSON对象,以便在Web服务中使用。本文将介绍如何使用Java实现List到JSONObject的转换,并提供一个实际的示例。 问题背景 在We...

weixin_27252001的博客 1469

【RT-DETR有效改进】利用EMAttention加深网络深度提高模型特征提取能力(特征选择模块)

本文给大家带来的改进机制是EMAttention注意力机制,它的核心思想是,重塑部分通道到批次维度,并将通道维度分组为多个子特征,以保留每个通道的信息并减少计算开销。EMA模块通过编码全局信息来重新校准每个并行分支中的通道权重,并通过跨维度交互来捕获像素级别的关系。本文改进是基于ResNet18、ResNet34、ResNet50、ResNet101,文章中均以提供,本专栏的改进内容全网独一份深度改进RT-DETR非那种无效Neck部分改进,

Snu77的博客 3171

RK3399平台开发系列讲解(内核入门篇)1.1、通过sysfs清楚了解设备的系统状况

文章目录1、不敢高声语,恐惊天上人:sysfs目的2、窥一斑而知全豹:sysfs目录介绍3、千丝万缕:sysfs中要素的关系4、数据观星:sysfs中相关结构体 1、不敢高声语,恐惊天上人:sysfs目的 我们想通过sys下面的目录和文件清楚的了解跑Liunx系统的嵌入式设备的系统状况。 2、窥一斑而知全豹:sysfs目录介绍 sysfs把连接在系统上的设备和总线组织成为一个分级的文件,它们可以由用户空间存取,向用户空间导出内核的数据结构以及它们的属性。sysfs的一个目的就是展示设备驱动模型中各组件.

内核笔记 1万+

JSON字符串转换成List对象集合

简单说下: 有一个json字符串,我想通过jackson把json字符串转换成list对象集合,网上找了很多,但都不尽人意。后来还是看jackson文档,才知道怎么做。 需要的包: <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-m...

yyongsheng的博客 2014

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Json字符串转换成List对象集合

import com.alibaba.fastjson.JSON; import org.junit.Test; import java.util.List; public class jsonTest { @Test public void test0() { String jsonString = "[{'id':1,'num':1},{'id':2,'num':2}]"; //将json转为list对象 // List<T&g.

netuser1937的博客 2万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java中将List集合对象转换成json对象

第一、在pom.xml文件中增加jar包依赖: <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>0.9</vers...

徐小冠 7万+

IDEA的使用指南

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

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(Article a :...

weixin_39525243的博客 2472

java list 转json对象_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(Article a ...

weixin_39640221的博客 4114

JAVA中List集合 转换成JSON对象

也是一个公共的方法 传两个参数  一个是你保存数据的LIST集合  还有一个你的数据对象如 User.Class 下面是方法的代码 /** * list集合转换为JSON对象 * @param users * @return */ public String getListJson(List users,Object obj){ List listo=users;

足迹 5014

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的博客 4746

List转换成Json、对象集合转换Json等

#region List转换成Json /// <summary> /// List转换成Json /// </summary> public static string ListToJson<T>(IList<T> list) { o...

weixin_30244681的博客 469
上一篇: 随机分配效果在task中的应用,公司内部代码片
下一篇: json对象(json-lib)转换成list-map集合
ole_triangle_java
博客等级 码龄10年 82粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值