我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java对于JSON的解析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

java对于JSON的解析

java对于JSON的解析

1、数据类型

1.1、JSONObject

JSONObject是一种在Java中表示JSON对象的数据结构。它是一个无序的键值对集合,用花括号({})包围,并且每个键值对由冒号(:)分隔。

在Java中使用JSONObject,通常需要使用JSON库(如Jackson、Gson等)进行解析和操作。以下是一些常见的JSONObject操作:

  1. 创建JSONObject:

    JSONObject jsonObject = new JSONObject();
  2. 添加键值对到JSONObject:

    jsonObject.put("key1", "value1");jsonObject.put("key2", 123);jsonObject.put("key3", true);// 可以添加其他JSONObject或JSONArray作为值
  3. 获取JSONObject中指定键的值:

    Object value = jsonObject.get("key");
  4. 获取JSONObject中所有键的集合:

    Set<String> keys = jsonObject.keySet();
  5. 遍历JSONObject中的所有键值对:

    for (String key : jsonObject.keySet()) {    Object value = jsonObject.get(key);    // 处理每个键值对}
  6. 将JSONObject转换为字符串:

    String jsonString = jsonObject.toJSONString();
  7. 解析JSON字符串为JSONObject(使用JSON库的相关方法):

    JSONObject jsonObject = JSON.parseObject(jsonString); // 示例使用JSON.simple库

需要注意的是,具体的操作方式和方法名称可能会因使用的JSON库而有所不同。上述示例中的方法是基于JSON.simple库进行说明的,其他库可能会有自己的API。

通过JSONObject,您可以方便地处理和操作JSON对象数据,在Java中实现与JSON对象的交互。

1.2、JSONArray

JSONArray是一种在Java中表示JSON数组的数据结构。它是在一对方括号([])内包含零个或多个JSON值的有序集合。JSONArray可以包含不同类型的值,例如字符串、数字、布尔值、对象或其他数组。

在Java中使用JSONArray,通常需要使用JSON库(如Jackson、Gson等)进行解析和操作。以下是一些常见的JSONArray操作:

  1. 创建JSONArray:

    JSONArray jsonArray = new JSONArray();
  2. 添加元素到JSONArray:

    jsonArray.add("value1");jsonArray.add(123);jsonArray.add(true);// 可以添加其他JSONArray或JSONObject作为元素
  3. 获取JSONArray的长度(元素个数):

    int length = jsonArray.size();
  4. 获取JSONArray中指定位置的元素:

    Object element = jsonArray.get(index);
  5. 遍历JSONArray中的所有元素:

    for (Object element : jsonArray) {    // 处理每个元素}
  6. 将JSONArray转换为Java数组:

    Object[] array = jsonArray.toArray();
  7. 将JSONArray转换为字符串:

    String jsonString = jsonArray.toJSONString();
  8. 解析JSON字符串为JSONArray(使用JSON库的相关方法):

    JSONArray jsonArray = JSON.parseArray(jsonString); // 示例使用JSON.simple库

需要注意的是,具体的操作方式和方法名称可能会因使用的JSON库而有所不同。上述示例中的方法是基于JSON.simple库进行说明的,其他库可能会有自己的API。

通过JSONArray,您可以方便地处理和操作JSON数组数据,在Java中实现与JSON数组的交互。

1.3、ArrayList

ArrayList是Java中的一种动态数组(也称为可变大小的数组),它实现了List接口。与传统的静态数组相比,ArrayList具有自动扩展和缩小容量的能力,可以根据需要动态地调整其大小。

以下是一些常见的ArrayList操作:

  1. 创建ArrayList:

    ArrayList<String> list = new ArrayList<>(); // 创建一个存储字符串的ArrayList
  2. 添加元素到ArrayList:

    list.add("element1");list.add("element2");// 可以添加任意类型的对象到ArrayList
  3. 获取ArrayList中指定位置的元素:

    String element = list.get(index);
  4. 修改ArrayList中指定位置的元素:

    list.set(index, "new element");
  5. 删除ArrayList中指定位置的元素:

    list.remove(index);
  6. 删除ArrayList中指定元素的第一个匹配项:

    list.remove("element");
  7. 判断ArrayList是否包含指定元素:

    boolean contains = list.contains("element");
  8. 获取ArrayList的大小(包含的元素个数):

    int size = list.size();
  9. 遍历ArrayList中的所有元素:

    for (String element : list) {    // 处理每个元素}
  10. 将ArrayList转换为数组:

    String[] array = list.toArray(new String[0]);

需要注意的是,ArrayList可以存储任意类型的对象,而不限于基本数据类型。使用ArrayList时,您可以根据需要动态地添加、删除和修改元素,提供了更灵活的数据存储和操作方式。

2、java转JSON

2.1、javaBean对象转化为JSON串

public void javaBeanToJSON() {        Person person = new Person(1001,"张三",20,"2002-07-18 12:20:34"); // 有参构造函数(实体类)        // JSON类有静态方法直接调用可以将javaBean对象转化为JSON串        String jsonString = JSON.toJSONString(person,true);        System.out.println(jsonString);    }

结果

{"age":20,"birthday":"2002-07-18 12:20:34","eid":1001,"username":"张三"}

2.2、JavaBean对象的数组转化成JSON数组

public  void arrayToJSON() {        Person p1 = new Person(1001,"张三",20,"2002-07-18 12:20:34");        Person p2 = new Person(1002,"张四",21,"2003-07-18 12:20:34");        Person p3 = new Person(1003,"张五",22,"2004-07-18 12:20:34");        Person[] persopns = {p1,p2,p3};        // 数组转化成JSON格式的数组        String jsonString = JSON.toJSONString(persopns, true); // true  是否严格转化成json数组        System.out.println(jsonString);    }

结果

[{"age":20,"birthday":"2002-07-18 12:20:34","eid":1001,"username":"张三"},{"age":21,"birthday":"2003-07-18 12:20:34","eid":1002,"username":"张四"},{"age":22,"birthday":"2004-07-18 12:20:34","eid":1003,"username":"张五"}]

2.3、List集合转化成JSON格式

  public void listToJSON() {        Person p1 = new Person(1001,"张三",20,"2002-07-18 12:20:34");        Person p2 = new Person(1002,"张四",21,"2003-07-18 12:20:34");        Person p3 = new Person(1003,"张五",22,"2004-07-18 12:20:34");        List<Person> list = new ArrayList<Person>();        list.add(p1);        list.add(p2);        list.add(p3);//        Collections.addAll(list,p1,p2,p3);  // 一次性add        String jsonString = JSON.toJSONString(list,true);        System.out.println(jsonString);    }

结果

[{"age":20,"birthday":"2002-07-18 12:20:34","eid":1001,"username":"张三"},{"age":21,"birthday":"2003-07-18 12:20:34","eid":1002,"username":"张四"},{"age":22,"birthday":"2004-07-18 12:20:34","eid":1003,"username":"张五"}]

3、JSON转Java

2.1、JSON转化为JAVABean

    public void jsonToJavaBean() {        String json = "{\"age\":20,\"birthday\":\"2002-07-18 12:20:34\",\"eid\":1001,\"username\":\"张三\"}";        Person person = JSON.parseObject(json,Person.class); // Person.class 类的结构信息        System.out.println(person);    }

结果

Person{eid=1001, username='张三', age=20, birthday='2002-07-18 12:20:34'}

3.2、JSON转化为java集合

public void JSONToJavaList() {        String json = "[{\"age\":20,\"birthday\":\"2002-07-18 12:20:34\",\"eid\":1001,\"username\":\"张三\"},{\"age\":21,\"birthday\":\"2003-07-18 12:20:34\",\"eid\":1002,\"username\":\"张四\"},{\"age\":22,\"birthday\":\"2004-07-18 12:20:34\",\"eid\":1003,\"username\":\"张五\"}]";        List<Person> list = JSON.parseArray(json, Person.class);        System.out.println(list);    }

结果

[Person{eid=1001, username='张三', age=20, birthday='2002-07-18 12:20:34'},  Person{eid=1002, username='张四', age=21, birthday='2003-07-18 12:20:34'},  Person{eid=1003, username='张五', age=22, birthday='2004-07-18 12:20:34'}]

4、JSONObject与JSONArray

4.1、JSONArray

[    {        "key": "value",        "key2": "value2"    },    {        "key": "value",        "key2": "value2"    },    {        "key": "value",        "key2": "value2"    }]

[    {        "key": "value"    },    {        "key": "value"    },    {        "key": "value"    }]

4.2 JSONObject

{    "key": "value",    "key2": "value2",    "key3": "value3"}

4.3、两者的区别

  • 区别在于JSONObject是一个{}包裹起来的一个对象(Object),而JSONArray则是[]包裹起来的一个数组(Array),JSONArray由一个或者多个JSONObjec 组成,说白点就是一个是数组一个是对象或字符串

  • 两者的区别就是JSONArray是数组,里面存着对象;JSONObect是对象,里面存的是字符串。通俗来说,JSONArray是运输机,里面装的是汽车,汽车里面坐的是人,而JSONObect是汽车,里面装的是人。

  • JSONArray和JSONObject再使用时候的第一个最重要的区别就是: JSONArray是一个一个加进去的;
    JSONObject是一对一对加进去的;

  • JSONObject最外面用的是 { } ,JSONArray最外面用的是 [ ]

5、JSONArray与List互转

5.1JSONArray转List

5.1.1.JSONArray字符串转List

//初始化JSONArrayJSONArray array=new JSONArray();array.add(0,"a");array.add(1,"b");array.add(2,"c"); List<String> list = JSONObject.parseArray(array.toJSONString(),String.class); System.out.println(list.toString());

结果:

[a, b, c]

5.1.2.JSONArray对象 转 List

//初始化JSONArrayJSONArray jsonArray = JSONArray.parseArray("[{\"name\":\"zhangsan\",\"age\":18},{\"name\":\"lisi\",\"age\":23}]");//打印jsonArraySystem.out.println(jsonArray.toJSONString());//转ListList<Body> list = JSONArray.parseArray(jsonArray.toJSONString(), Body.class);//打印ListSystem.out.println(list.toString());

结果

[{“name”:“zhangsan”,“age”:18},{“name”:“lisi”,“age”:23}]
[Body{name=‘zhangsan’, age=18}, Body{name=‘lisi’, age=23}]

5.2 .List转JSONArray

List<T> list = new ArrayList<T>();JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(list));

来源地址:https://blog.csdn.net/qq_64356200/article/details/131914711

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java对于JSON的解析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

深入理解Python对Json的解析

Json简介JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。
2022-06-04

关于mysql中的json解析函数JSON_EXTRACT

目录mysql json解析函数JSON_EXTRACT例子mysql5.7 json格式与json_extract方法数据初始化select语句返回结果解析用法解析mysql json解析函数JSON_EXTRACTMYSQl自带的解析
2022-07-05

怎么用spel解析JSON对象

使用SpEL(Spring表达式语言)解析JSON对象,可以通过以下步骤:1. 添加依赖:在项目的pom.xml文件中添加以下依赖:```xmlorg.springframework.bootspring-boot-starter-expr
2023-08-25

java如何解析json数据

Java可以使用Json库来解析JSON数据。以下是使用Jackson库来解析JSON数据的示例代码:1. 导入Jackson库的依赖:```xmlcom.fasterxml.jackson.corejackson-databind2.12
2023-08-24

java怎么解析json数据

Java提供了许多库来解析JSON数据,其中最常用的有以下几种方法:1. 使用Java标准库(javax.json):Java标准库提供了javax.json包,可以用来解析和生成JSON数据。可以通过以下步骤来解析JSON数据:a. 创建
2023-08-25

C#怎么基于JsonConvert解析Json数据

这篇“C#怎么基于JsonConvert解析Json数据”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#怎么基于JsonC
2023-07-05

VBScript把json字符串解析成json对象的方法教程

这篇文章主要介绍“VBScript把json字符串解析成json对象的方法教程”,在日常操作中,相信很多人在VBScript把json字符串解析成json对象的方法教程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
2023-06-08

详谈Java中net.sf.json包关于JSON与对象互转的坑

在Web开发过程中离不开数据的交互,这就需要规定交互数据的相关格式,以便数据在客户端与服务器之间进行传递。数据的格式通常有2种:1、xml;2、JSON。通常来说都是使用JSON来传递数据。本文正是介绍在Java中JSON与对象之间互相转换
2023-05-30

基于C++编写一个Json解析器

这篇文章主要为大家详细介绍了如何基于C++编写一个Json解析器,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解一下
2023-03-09

java的json解析方法有哪几种

在Java中,有多种方法可以解析JSON数据。以下是其中几种常用的方法:使用原生的Java API:可以使用org.json包或javax.json包中的类来解析JSON数据。例如,可以使用JSONObject和JSONArray类来解析J
java的json解析方法有哪几种
2024-02-29

Java JSON 解析:释放数据的秘密

掌握 Java JSON 解析,释放数据的秘密
Java JSON 解析:释放数据的秘密
2024-03-07

Json转化为Java对象的实例详解

Json转化为Java对象的实例详解问题:前后端数据交互时,经常会遇到Json串与Java对象转化的问题,有的Java对象中还包含了List对象等。解决方案: 引入 json-lib包,Maven坐标如下:
2023-05-31

C#基于JsonConvert解析Json数据的方法实例

最近初接触C#语言,发现JSON解析这块和JAVA差异过大,下面这篇文章主要给大家介绍了关于C#基于JsonConvert解析Json数据的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-05-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录