java读取json格式数据_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 list = new ArrayList<>();
for(int i = 0;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 list = user.getGoodsList();
for (Goods goods : list) {
System.out.println("userID:" + goods.getId() + " userName:" + goods.getName());
}
}
}
java读取json格式数据_Java解析JSON格式数据相关推荐
- java解析json数据_java解析JSON数据详解
JSON是目前最流行的轻量级数据交换语言(没有之一).尽管他是javaScript的一个子集.但由于其是独立与语言的文本格式,它几乎可以被所有编程语言所支持. 以下是对java语言中解析json数据的 ...
- html5处理json数据,js解析json数组
js读取解析JSON类型数据 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 Jav ...
- java json 易用_Java中 Json的使用
Java JSON 本章节我们将为大家介绍如何在 Java 语言中使用 JSON. 类库选择 Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库. 下面是几个常用的 JSON 解析 ...
- Python获取丁香园疫情数据并解析json数据
Python获取丁香园疫情数据并解析json数据 在利用pyecharts V1.x版本,使用Map对象进行制图时,对数据格式的要求比较高,如果数据格式不正确可能达不到我们预期的效果.在我的前一篇文章 ...
- Python 获取接口数据,解析JSON,写入文件
Python 获取接口数据,解析JSON,写入文件 用于练手的例子,从国家气象局接口上获取JSON数据,将它写入文件中,并解析JSON: 总的来说,在代码量上,python代码量要比java少很多.而 ...
- c#解析json字符串数组_C#解析JSON字符串总结
JSON文件读取到内存中就是字符串,.NET操作JSON就是生成与解析JSON字符串. 操作JSON通常有以下几种方式: 1. 原始方式:按照JSON字符串自己来解析. 2. 通用方式[★★★★★]: ...
- 【Android RTMP】音频数据采集编码 ( AAC 音频格式解析 | FLV 音频数据标签解析 | AAC 音频数据标签头 | 音频解码配置信息 )
文章目录 安卓直播推流专栏博客总结 一. AAC 音频格式解析 二. FLV 音频数据标签解析 1. 分析 FLV 格式中的 AAC 音频格式数据 2. AAC 音频特殊配置 3. AAC 音频数据标 ...
- java读取文件并输出_java读取txt文件并输出结果
这篇文章主要介绍了java读取txt文件并输出结果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 描述: 1.java读取指定txt文件并解析 文件 ...
- java json 解析_Java解析JSON的四种方式
一.什么是JSON JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于阅读和编写,同时也易于解析和 ...
- android java json_探究Android系统中解析JSON数据的方式
前言喜欢在前言里讲一下自己的现状,或许能有共鸣的同学,更多的是留给自己一个纪念,几个月或者几年再回来看的时候还是会很有感慨.今天说说语言,json这种数据格式之前我做服务器端的时候天天接触,天真的以为 ...
最新文章
- Apache ZooKeeper - 选举Leader源码流程深度解析
- 2017-3-19四校联考
- 初探函数式编程和面对对象式编程
- Intro OpenCL Tutorial
- LeetCode 第 36 场双周赛(304/2204,前13.8%)
- 共享变量 tensorflow解读
- 黑马程序员—多线程,单线程
- 条码php api,条码生成识别
- 吴恩达《机器学习》第十五章:异常检测
- Seesion工作原理
- think php5关联模型,thinkphp5中关联模型的定义与使用方法
- 2019-06-19 阿里巴巴三面
- Linux栈溢出漏洞原理,盘它!PWN栈溢出漏洞。
- 刷流量php网站源码,在线模拟刷网站PV流量源码
- 吉林大学邮箱smtp服务器,吉林大学邮件系统成功案例-彩讯Richmail邮件系统,致力于互联网行业软件的开发和应用12年....
- 幻想破灭!为何“每个儿童一台笔记本电脑”项目屡屡陷入困境?
- win10双系统启动黑屏,开始菜单闪烁(可能需要引导修复)
- 机器人学(二):动力学参数辨识
- dedeCMS采集插件自动采集文章自定义接口
- JavaScript:异步简介与Promise实践拓展