Java之JsonArray用法讲解

 更新时间:2021年08月11日 11:27:30   作者:xinyuezitang  
这篇文章主要介绍了Java之JsonArray用法讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

需求:

四个字符串:
	 "[\"HDC-51\"]",
	"[\"HDC-51\", \"HDC-55\"]",
	"[\"HDC-50\", \"HDC-55\", \"HDC-55-2\"]",
	"[\"HDC-51\", \"HDC-55\", \"HDC-55-2\",\"HDC-21N\"]",
分别向四个字符串中添加String macType ="HDC-50" ,
并判断字符串中各个元素是否与macType相同, 相同则不添加, 不相同则添加.
最后输出四个字符串,要求格式同开始字符串格式一致.

思路:

这是不是普通的字符串, 而是json格式的字符串,
所以在判断的时候, 可以选择将多个字符串转成jsonArray格式

延伸:

通常我们在数据库中, 一个字段存储多个字符串的数据, 一般以json格式存入,
更新数据的时候,使用jsonArray转化更方便

方法一: 普通方式,不使用jsonArray

	public class Test {
  	  public static void main(String[] args) {
  	  
		List<String> contentList = new ArrayList<>();
        contentList.add("[\"HDC-51\"]");
        contentList.add("[\"HDC-51\", \"HDC-55\"]");
        contentList.add("[\"HDC-50\", \"HDC-55\", \"HDC-55-2\"]");
        contentList.add("[\"HDC-51\", \"HDC-55\", \"HDC-55-2\",\"HDC-21N\"]");
        System.out.println(contentList);
        String macType ="HDC-50";    

		for (String content : contentList) {
            
            //去掉content 中的中括号
            String contentStr1 = content.replaceAll("[\\[\\]]", "");
            List<String> content1= Arrays.asList(contentStr1.split(","));
            
            List<String> list = new ArrayList<>();

            for (String string : content1) {
                list.add(string);
            }
            
            //判断content中是否已经包含macType
            boolean flag = false;
            for (String string : list) {
              //去掉字符串的引号
                String str= string.replace("\"", "");
                if (macType.equals(str)) {
                   flag = true; 
                   break;
                }        
            }
            
            //如果没有macType,则添加
            if (flag == false) {
                StringBuilder sb = new StringBuilder();
                String macTypeStr = sb.append("\"").append(macType).append("\"").toString();
                list.add(macTypeStr);            
            }
            
            String newContent = list.toString();
            System.out.println(newContent);
        
        }            
  	  }
 	}

结果:

在这里插入图片描述

方法二: 使用JsonArray

	public class Test {
  	  public static void main(String[] args) {
  	  
		List<String> contentList = new ArrayList<>();
        contentList.add("[\"HDC-51\"]");
        contentList.add("[\"HDC-51\", \"HDC-55\"]");
        contentList.add("[\"HDC-50\", \"HDC-55\", \"HDC-55-2\"]");
        contentList.add("[\"HDC-51\", \"HDC-55\", \"HDC-55-2\",\"HDC-21N\"]");
        System.out.println(contentList);
        String macType ="HDC-50";    

		for (String content : contentList) {
            
            try {
                JSONArray contentArray = JSONArray.parseArray(content);
                
                //System.out.println("contentArray前 : " + contentArray);
                if (!contentArray.contains(macType)) {
                    contentArray.add(macType);
                }
                System.out.println("contentArray后 : " + contentArray);
            } catch (Exception e) {
              
                e.printStackTrace();
            }
        }            
  	  }
 	}
			

控制台输出:

在这里插入图片描述

到此这篇关于Java之JsonArray用法讲解的文章就介绍到这了,更多相关Java之JsonArray用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring Boot Jar 包部署脚本的实例讲解

    Spring Boot Jar 包部署脚本的实例讲解

    在本篇文章里小编给大家整理的是一篇关于Spring Boot Jar 包部署脚本的实例讲解内容,对此有兴趣的朋友们可以跟着学习下。
    2021-12-12
  • SpringCloud Feign参数问题及解决方法

    SpringCloud Feign参数问题及解决方法

    这篇文章主要介绍了SpringCloud Feign参数问题及解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Java太阳系小游戏分析和源码详解

    Java太阳系小游戏分析和源码详解

    这篇文章主要对Java太阳系小游戏进行深入分析以及对应源码解释,进一步巩固了面向对象的知识,需要的朋友可以参考下
    2015-08-08
  • Java线程的start方法回调run方法的操作技巧

    Java线程的start方法回调run方法的操作技巧

    面试过程中经常会被面试官问到为什么我们调用start()方法时会执行run()方法,为什么不能直接调用run()方法,问的一头雾水,今天小编给大家介绍下Java线程的start方法回调run方法的操作技巧,需要的朋友参考下吧
    2017-11-11
  • 简单实现Spring的IOC原理详解

    简单实现Spring的IOC原理详解

    这篇文章主要介绍了简单实现Spring的IOC原理详解,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • mybatis中string和date的转换方式

    mybatis中string和date的转换方式

    这篇文章主要介绍了mybatis中string和date的转换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • SpringBoot管理RabbitMQ中的Channel详解

    SpringBoot管理RabbitMQ中的Channel详解

    这篇文章主要介绍了SpringBoot管理RabbitMQ中的Channel详解,channel仅存在于connection的上下文中,而不会单独存在,当channel关闭时,其上的所有channel也会关闭,需要的朋友可以参考下
    2023-08-08
  • mac 安装java1.8的过程详解

    mac 安装java1.8的过程详解

    这篇文章主要介绍了mac 安装java1.8,包括下载过程及配置环境相关知识介绍,本文结合实例代码介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • Struts和servlet不能共存问题解决方法

    Struts和servlet不能共存问题解决方法

    这篇文章主要介绍了Struts和servlet不能共存问题解决方法,共有三种方法,需要的朋友可以参考下。
    2017-09-09
  • Java Web 实现QQ登录功能一个帐号同一时间只能一个人登录

    Java Web 实现QQ登录功能一个帐号同一时间只能一个人登录

    对于一个帐号在同一时间只能一个人登录,下文给大家介绍的非常详细,对java web qq 登录功能感兴趣的朋友一起看看吧
    2016-11-11

最新评论