Java解析JSON格式数据
Java解析JSON格式的数据主要用到两个类JSONObject和JSONArray,这两个类在json-lib-2.4-jdk15包中,在使用JSONObject时除了需要这个包外还需要相关的依赖包
不导入这些包在运行时就会报错。
1.不包含数组的json数据,Java类的字段中也没有List。
现在有一个User类如下:
有两个字段id和name,json格式字符串如下:
String objectStr="{\"name\":\"JAVA\",\"id\":\"1\"}";
将该字符串解析成对应的User类,代码如下所示:
import net.sf.json.JSONObject;
public class Demo {
public static void main(String[] args) {String objectStr="{\"name\":\"JAVA\",\"id\":\"1\"}";JSONObject jsonObject = JSONObject.fromObject(objectStr);User user = (User) JSONObject.toBean(jsonObject, User.class);System.out.println(user.getId());System.out.println(user.getName());}
}
运行结果:
2.json数据为数组格式
import java.util.List;
import java.util.ArrayList;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;public class Demo {
public static void main(String[] args) {String arrayStr="[{\"name\":\"JAVA\",\"id\":\"1\"}, {\"name\":\"C#\",\"id\":\"2\"}]";JSONArray jsonArray = JSONArray.fromObject(arrayStr);List<User> list = new ArrayList<>();for(int i = 0;i<jsonArray.size();i++) {JSONObject jsonObject = JSONObject.fromObject(jsonArray.get(i).toString());User user = (User) JSONObject.toBean(jsonObject, User.class);list.add(user);}for (User user : list) {System.out.println("userID:" + user.getId() + " userName:" + user.getName());}
}
}
3.接送数据中包含数组
这种情况直接解析会找不到对应的List类型,需要加一个classmap来确定类型,代码如下:
import java.util.List;
import java.util.Map;
import java.util.ArrayList;
import java.util.HashMap;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;public class Demo {
public static void main(String[] args) {String ObjectStr="{\"name\":\"JAVA\",\"id\":\"1\",\"goodsList\":[{\"name\":\"JAVA\",\"id\":\"1\"}, {\"name\":\"C#\",\"id\":\"2\"}]}";JSONObject jsonObject = JSONObject.fromObject(ObjectStr);Map classmap = new HashMap<>();classmap.put("goodsList", Goods.class);User user = (User) JSONObject.toBean(jsonObject, User.class, classmap);System.out.println(user.getId());List<Goods> list = user.getGoodsList();for (Goods goods : list) {System.out.println("userID:" + goods.getId() + " userName:" + goods.getName());}
}
}
Java解析JSON格式数据相关推荐
- 【Python使用】Python解析JSON数据的基本方法/用MATLAB解析json格式数据
一 JSON数据格式介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. JSON建构于两种结构:json是Javascript中的对象和数组中的对象, ...
- python中json模块_Python使用内置json模块解析json格式数据的方法
本文实例讲述了Python使用内置json模块解析json格式数据的方法.分享给大家供大家参考,具体如下: Python中解析json字符串非常简单,直接用内置的json模块就可以,不需要安装额外的模 ...
- php使用 js格式解析,JavaScript解析JSON格式数据的方法示例
本文实例讲述了JavaScript解析JSON格式数据的方法.分享给大家供大家参考,具体如下: 1.使用JavaScript提供的eval()函数function JsonText1() { var ...
- 对JavaScript解析JSON格式数据的理解
对JavaScript解析JSON格式数据的理解 一.JSON与JavaScript对象的关系 1,JSON的由来: 在21世纪初,Douglas Crockford(Web开发领域最知名的技术权威之 ...
- JavaScript解析json格式数据简单示例
JavaScript解析json格式数据简单示例 本文通过for循环来获取json结点数据,需要的朋友可以参考以下这串json数据用来存储预加载的图片路径: 代码如下: var imgData = [ ...
- C++解析JSON格式数据
因为项目原因需要使用VC6.0解析JSON格式数据,这里首先介绍VC6.0编译JSON解析库的步骤. 首先你必须在http://sourceforge.net/projects/jsoncpp/fil ...
- Java-json系列(一):用GSON解析Json格式数据
GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...
- 4、<VBA>学习用刘永富老师插件解析JSON格式数据
Sub 刘永富老师插件学习()Dim j As API.JSONSet j = New API.JSONj.Parse "{'data':{'route':{'destination':'1 ...
- C# 解析JSON格式数据
JSON简介 JSON(全称为JavaScript ObjectNotation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集.JSON采用完全独立于语言的文本格式,可 ...
最新文章
- 启动HBase抛出org.apache.hadoop.hbase.ClockOutOfSyncException异常:hmaster正常,节点hregionserver启动失败
- canal mysql 数据同步
- URL模块之parse方法
- 3章.Linux主机规划和磁盘分区
- Selenium自动化测试-JavaScript定位
- 灵芝蘑菇提取物行业调研报告 - 市场现状分析与发展前景预测
- 【ROS小车9】仅用 RPLIDAR A1(思岚 A1) 雷达在 Ubuntu 虚拟机跑 gmapping
- (1)CC3200学习之blinky导入后报编译器版本错误
- php后台您没有权限访问该页面,登陆微信公共平台提示没有权限访问该页面请点击返回首页现象的解决办法...
- @程序员:连小学生都开始学编程了,你们怕了吗?
- 强化学习七日打卡营终极复现之flappy bird
- 安卓设备脱离pc自动化测试,Termux模拟器下python+uiautomator2的环境设置。本人亲测,踩坑总结。
- R语言实战Topsis综合评价法
- 龙讯系列视频转换,LT9211,LT8918,功能:lvds转BT656,lvds转mipi(CSI\DSI)RGB转MIPI(DSI\CSI) BT656\601\1120转HDMI1.4\DVI
- 计算机考研的专硕是不是越来越难,专硕考研变难了,该211改考数一英一!近期高校初试科目调整通知...
- element 表格背景颜色透明
- IOS开发 阅读器类APP可用开源框架介绍(2)
- 【BI学习心得15-数据分析思维】
- sqoop的java操作,总结归纳,含代码
- SpringCloud Alibaba 2021微服务实战十三 gateway 全局过滤器打印日志及如何忽略全局过滤器
热门文章
- php图片地址怎么看,电脑截屏的图片在哪里找
- 位运算符详解(与,或,非,异或)
- Juc_并发编程目录
- OpenHarmony啃论文俱乐部方法总结分析
- 解决Unable to determine application id: com.android.tools.idea.run.ApkProvisionException:
- Android 错把setLayerType当成硬件加速
- stm32f767之ADC
- 内网渗透攻击技术的利用
- java 地图轨迹_百度地图多个坐标连成轨迹
- 用PS调出人像冷色艺术效果