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格式数据相关推荐

  1. java解析json数据_java解析JSON数据详解

    JSON是目前最流行的轻量级数据交换语言(没有之一).尽管他是javaScript的一个子集.但由于其是独立与语言的文本格式,它几乎可以被所有编程语言所支持. 以下是对java语言中解析json数据的 ...

  2. html5处理json数据,js解析json数组

    js读取解析JSON类型数据 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 Jav ...

  3. java json 易用_Java中 Json的使用

    Java JSON 本章节我们将为大家介绍如何在 Java 语言中使用 JSON. 类库选择 Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库. 下面是几个常用的 JSON 解析 ...

  4. Python获取丁香园疫情数据并解析json数据

    Python获取丁香园疫情数据并解析json数据 在利用pyecharts V1.x版本,使用Map对象进行制图时,对数据格式的要求比较高,如果数据格式不正确可能达不到我们预期的效果.在我的前一篇文章 ...

  5. Python 获取接口数据,解析JSON,写入文件

    Python 获取接口数据,解析JSON,写入文件 用于练手的例子,从国家气象局接口上获取JSON数据,将它写入文件中,并解析JSON: 总的来说,在代码量上,python代码量要比java少很多.而 ...

  6. c#解析json字符串数组_C#解析JSON字符串总结

    JSON文件读取到内存中就是字符串,.NET操作JSON就是生成与解析JSON字符串. 操作JSON通常有以下几种方式: 1. 原始方式:按照JSON字符串自己来解析. 2. 通用方式[★★★★★]: ...

  7. 【Android RTMP】音频数据采集编码 ( AAC 音频格式解析 | FLV 音频数据标签解析 | AAC 音频数据标签头 | 音频解码配置信息 )

    文章目录 安卓直播推流专栏博客总结 一. AAC 音频格式解析 二. FLV 音频数据标签解析 1. 分析 FLV 格式中的 AAC 音频格式数据 2. AAC 音频特殊配置 3. AAC 音频数据标 ...

  8. java读取文件并输出_java读取txt文件并输出结果

    这篇文章主要介绍了java读取txt文件并输出结果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 描述: 1.java读取指定txt文件并解析 文件 ...

  9. java json 解析_Java解析JSON的四种方式

    一.什么是JSON JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于阅读和编写,同时也易于解析和 ...

  10. android java json_探究Android系统中解析JSON数据的方式

    前言喜欢在前言里讲一下自己的现状,或许能有共鸣的同学,更多的是留给自己一个纪念,几个月或者几年再回来看的时候还是会很有感慨.今天说说语言,json这种数据格式之前我做服务器端的时候天天接触,天真的以为 ...

最新文章

  1. Apache ZooKeeper - 选举Leader源码流程深度解析
  2. 2017-3-19四校联考
  3. 初探函数式编程和面对对象式编程
  4. Intro OpenCL Tutorial
  5. LeetCode 第 36 场双周赛(304/2204,前13.8%)
  6. 共享变量 tensorflow解读
  7. 黑马程序员—多线程,单线程
  8. 条码php api,条码生成识别
  9. 吴恩达《机器学习》第十五章:异常检测
  10. Seesion工作原理
  11. think php5关联模型,thinkphp5中关联模型的定义与使用方法
  12. 2019-06-19 阿里巴巴三面
  13. Linux栈溢出漏洞原理,盘它!PWN栈溢出漏洞。
  14. 刷流量php网站源码,在线模拟刷网站PV流量源码
  15. 吉林大学邮箱smtp服务器,吉林大学邮件系统成功案例-彩讯Richmail邮件系统,致力于互联网行业软件的开发和应用12年....
  16. 幻想破灭!为何“每个儿童一台笔记本电脑”项目屡屡陷入困境?
  17. win10双系统启动黑屏,开始菜单闪烁(可能需要引导修复)
  18. 机器人学(二):动力学参数辨识
  19. dedeCMS采集插件自动采集文章自定义接口
  20. JavaScript:异步简介与Promise实践拓展

热门文章

  1. 电脑安装Chrome OS
  2. MOSFET手册解读MOS管参数解读(转)
  3. mp c2011sp文件服务器,理光Ricoh MP C2011SP驱动
  4. 什么是P2P和它的应用
  5. 关于今天火爆各大高校的“QQ悄悄话查看器”
  6. 二分法求函数的解(函数零点)
  7. everthing 打开历史记录功能
  8. ros2 nav2 行为树插件引擎原理和应用
  9. 行为树(Behavior Tree)
  10. 蓝星微商城源码+搭建教程源码