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用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java创建数组的3种方式代码举例

    Java创建数组的3种方式代码举例

    数组是相同类型数据的有序集合,数组描述的是若干个相同类型的数据按照一定的先后次序排列组合而成,其中每一个数据称为数组的元素,可以通过下标进行访问,这篇文章主要给大家介绍了关于Java创建数组的3种方式,需要的朋友可以参考下
    2024-01-01
  • Java中遍历数组使用foreach循环还是for循环?

    Java中遍历数组使用foreach循环还是for循环?

    这篇文章主要介绍了Java中遍历数组使用foreach循环还是for循环?本文着重讲解for语句的语法并给出使用实例,同时总结出尽量使用foreach语句遍历数组,需要的朋友可以参考下
    2015-06-06
  • ActiveMQ简单入门(新手必看篇)

    ActiveMQ简单入门(新手必看篇)

    下面小编就为大家带来一篇ActiveMQ简单入门(新手必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Java二维数组查找功能代码实现

    Java二维数组查找功能代码实现

    这篇文章主要介绍了Java二维数组查找功能代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Java中堆和栈的区别详解

    Java中堆和栈的区别详解

    这篇文章主要介绍了Java中堆和栈的区别详解,所有的Java程序都运行在JVM虚拟机内部,我们这里介绍的自然是JVM(虚拟)内存中的堆和栈,需要的朋友可以参考下
    2015-01-01
  • java生成随机数的常用方法分析

    java生成随机数的常用方法分析

    这篇文章主要介绍了java生成随机数的常用方法,结合实例形式分析了java生成随机数常用的方法功能与相关使用技巧,需要的朋友可以参考下
    2017-10-10
  • springboot枚举类型传递的步骤

    springboot枚举类型传递的步骤

    这篇文章主要介绍了springboot枚举类型传递的步骤,帮助大家更好的理解和学习使用springboot,感兴趣的朋友可以了解下
    2021-04-04
  • 解决报错:java.lang.IllegalStateException: Failed to execute CommandLineRunner问题

    解决报错:java.lang.IllegalStateException: Failed to&nb

    在项目开发中,可能会遇到Elasticsearch启动报错的问题,原因可能包括版本不一致、端口配置错误、配置文件不匹配及服务未启动等,解决方法包括检查进程、重启服务等,这些经验可以帮助开发者快速定位问题并解决,保证项目顺利运行
    2024-10-10
  • 关于Java中方法引用的示例

    关于Java中方法引用的示例

    方法引用可以认为是Lambda表达式的一种特殊形式,Lambda表达式可以让开发者自定义抽象方法的实现代码,方法引用则可以让开发者直接引用已存在的实现方法,作为Lambda表达式的Lambda体(参数列表得一致),需要的朋友可以参考下
    2023-05-05
  • SpringCloud feign服务熔断下的异常处理操作

    SpringCloud feign服务熔断下的异常处理操作

    这篇文章主要介绍了SpringCloud feign服务熔断下的异常处理操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06

最新评论