json-lib使用,JSONObject和JSONArray

2023-10-29

原文:http://blog.csdn.net/yangbobo1992/article/details/8350765

从Object到String

 要先用Object对象构造一个JSONObject或者JSONArray对象,然后调用它的toString()方法即可

(1)示例一

1 Book book=new Book();
2 book.setName("Java");
3 book.setPrice(52.3f);
4 JSONObject object=JSONObject.fromObject(book);
5 System.out.println(object.toString());

(2)示例二

 1         Book book=new Book();
 2         book.setName("Java");
 3         book.setPrice(52.3f);
 4         
 5         Book book2=new Book();
 6         book2.setName("C");
 7         book2.setPrice(42.3f);
 8         List list=new ArrayList();
 9         list.add(book);
10         list.add(book2);
11         JSONArray arry=JSONArray.fromObject(list);
12         System.out.println(arry.toString());
13 //结果如下:
14 [{"name":"Java","price":52.3},{"name":"C","price":42.3}]

2.从String到Object
 要先用String对象构造一个JSONObject或者JSONArray对象
(1)示例一 

1 String json="{name:'Java',price:52.3}";    
2 JSONObject object=JSONObject.fromObject(json);
3 System.out.println(object.get("name")+" "+object.get("price"));

(2)示例二

1 String json="[{name:'Java',price:52.3},{name:'C',price:42.3}]";
2 JSONArray array=JSONArray.fromObject(json);
3 for(int i=0;i<array.size();i++){
4     Map o=(Map)array.get(i);
5     System.out.println(o.get("name")+" "+o.get("price"));
6 }

3.从String到Bean

(1)单个Bean对象

1         String json="{name:'Java',price:52.3}";
2         JSONObject object=JSONObject.fromObject(json);
3         Product product=(Product)JSONObject.toBean(object,Product.class);
4         System.out.println(product.getName()+" "+product.getPrice());

(2).Bean的数组

1         String json="[{name:'Java',price:52.3},{name:'C',price:42.3}]";
2         JSONArray array=JSONArray.fromObject(json);
3         Product[] products=(Product[]) JSONArray.toArray(array,Product.class);
4         for(Product p:products){
5             System.out.println(p.getName()+" "+p.getPrice());
6         }

自定义封装JSON操作的类

 1 package com.util;
 2 
 3 import java.util.List;
 4 import java.util.Map;
 5 
 6 import net.sf.json.JSONArray;
 7 import net.sf.json.JSONObject;
 8 
 9 public class JsonHelper {
10     //从普通的Bean转换为字符串
11     public static String getJson(Object o){
12         JSONObject jo=JSONObject.fromObject(o);
13         return jo.toString();
14     }
15     //从Java的列表转换为字符串
16     public static String getJson(List list){
17         JSONArray ja=JSONArray.fromObject(list);
18         return ja.toString();
19     }
20     //从Java对象数组转换为字符串
21     public static String getJson(Object[] arry){
22         JSONArray ja=JSONArray.fromObject(arry);
23         return ja.toString();
24     }
25     //从json格式的字符串转换为Map对象
26     public static Map getObject(String s){
27         return     JSONObject.fromObject(s);
28     }
29     //从json格式的字符串转换为List数组
30     public static List getArray(String s){
31         return JSONArray.fromObject(s);
32     }
33     //从json格式的字符串转换为某个Bean
34     public static Object getObject(String s,Class cls){
35         JSONObject jo=JSONObject.fromObject(s);
36         return JSONObject.toBean(jo, cls);
37     }
38     //从json格式的字符串转换为某类对象的数组
39     public static Object getArray(String s,Class cls){
40         JSONArray ja=JSONArray.fromObject(s);
41         return JSONArray.toArray(ja, cls);
42     }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

json-lib使用,JSONObject和JSONArray 的相关文章

随机推荐

  • PTP精确时间协议

    Precision Time Protocol PTP IEEE 1588 PTP 是一种高精度时间同步协议 在网络通过同步信号周期性对所有节点时钟校正 PTP一般在硬件级实现的 精度更高 常见的是直接在 MAC 层嵌入时间戳 1588v1
  • python读取文件之with open()

    读写文件是最常见的IO操作 Python内置了读写文件的函数 用法和C是兼容的 open VS with open 目前最常使用的是with open 函数 首先介绍它和open 的区别 open 完成后必须调用close 方法关闭文件 因
  • EasyExcel 百万级别数据高效率导入/导出

    嗨 您好 我是 vnjohn 在互联网企业担任 Java 开发 CSDN 优质创作者 推荐专栏 Spring MySQL Nacos Java 后续其他专栏会持续优化更新迭代 文章所在专栏 业务设计 我当前正在学习微服务领域 云原生领域 消
  • 【vision transformer】DETR原理及代码详解(二)

  • Setting OMP_NUM_THREADS

    Setting OMP NUM THREADS environment variable for each process to be 1 in default to avoid your system being overloaded p
  • K8S集群 NOT READY的解决办法 1.13 错误信息:cni config uninitialized

    今天给同事 一个k8s 集群 出现not ready了 花了 40min 才搞定 这里记录一下 避免下载 再遇到了 不清楚 错误现象 untime network not ready NetworkReady false reason Ne
  • python-什么是数据分析?

    python 什么是数据分析 根据分析目的 用适当的分析方法及工具 对数据进行分析 提取有价值的信息 形成有效结论的过程 数据分析可分为三类 描述性数据分析 从一组数据中可以摘要并且描述这份数据的集中和离散情形 探索性数据分析 从数据中找出
  • 使用Jmeter+ant进行接口自动化测试(数据驱动)

    最近在做接口测试 因为公司有使用jmeter做接口测试的相关培训资料 所以还是先选择使用jmeter来批量管理接口 进行自动化测试 话不多说 进入正题 1 使用csv文件保存接口测试用例 方便后期对接口进行维护 先新建txt文件 然后文件扩
  • [极客大挑战 2019]Secret File 1(php伪协议)

    纯小白的web之旅 o 第一篇题解 有些地方可能还不清楚 或者存在错误 大佬们如果看到可以指点一下 点开靶机 是这个界面 第一步看一下源代码 可以看到一个提示 Archive room php 点进去就跳到另一个页面了 我们点一下secre
  • 开发过程中用到的相关知识汇总

    开发相关 语言相关 算法 数据库优化 linux系统 系能调优 工具 维护相关 监控工具 问题定位
  • 基于java+springboot+mybatis+vue+elementui的旧物置换网站

    项目介绍 随着时代的不进步 旧物也成人们的烦恼 许多平台网站都在推广自已的产品像天猫 咸鱼 京东 拼多多 所以开发出一套关于旧物置换网站非常有必要 旧物置换网站主要是借助计算机 通过对用户进行管理 为减少管理员的工作 同时也方便广大用户对个
  • 在windows7下安装vs2017插件 GLSL language integration v0.10.120.vsix报错:microsoft.visualc.redist.12

    系列文章目录 文章目录 系列文章目录 前言 一 分析原因 二 解决办法 1 下载对应的 VC redist x64 exe 安装 VC redist x64 exe 前言 一 分析原因 官方描述 Visual C 可再发行程序包安装 Mic
  • 折半查找法

    折半查找法又称为二分查找法 这种方法对待查找的列表有两个要求 1 必须采用顺序存储结构 2 必须按关键字大小有序排列 算法思想 首先 将表的中间位置记录的关键字与查找关键字比较 如果两者相等 则查找成功 否则利用中间位置记录将表分成前 后两
  • Lightmap3ds

    https github com Gamieon Lightmap3ds
  • 物联网体系的三层结构功能和包含设备

    物联网体系的三层结构 综合国内各权威物联网专家的分析 将物联网系统划分为三个层次 感知层 网络层 应用层 并依此概括地描绘物联网的系统架构 感知层 感知层解决的是人类世界和物理世界的数据获取问题 由各种传感器以及传感器网关构成 该层被认为是
  • Mybatis批量更新的两种方式

    前言 在使用Mybatis框架的过程中 经常会通过构建动态SQL来处理批量插入 批量更新数据等相关操作 本文将以批量更新为例 简单介绍其使用过程 动态SQL元素 if set trim foreach 批量更新 映射方法 int updat
  • 模式分类识别

    模式分类识别 RF随机森林多特征分类预测及变量重要度衡量 Matlab完整程序 目录 模式分类识别 RF随机森林多特征分类预测及变量重要度衡量 Matlab完整程序 预测结果 基本介绍 程序设计 参考资料 预测结果
  • SNMP V1 V2 V3版本的联系和区别 .

    SNMP 是一个协议用来管理网络上的节点 包括工作站 路由器 交换机 集线器和其他的外围设备 SNMP是一个应用协议 使用UDP封装进行传输 UDP是一个无连接的传输层协议 在OSI模型中为第四层协议 提供简单的可靠的传输服务 SNMP使网
  • JavaScript replace字符串替换函数的用法

    replace 语法 stringObj replace rgExp replaceText stringObj 必选项 要执行该替换的 String 对象或文字 该对象不会被 replace 方法修改 rgExp 必选项 描述要查找的内容
  • json-lib使用,JSONObject和JSONArray

    原文 http blog csdn net yangbobo1992 article details 8350765 从Object到String 要先用Object对象构造一个JSONObject或者JSONArray对象 然后调用它的t