Java之JsonArray用法講解
需求:
四個(gè)字符串: "[\"HDC-51\"]", "[\"HDC-51\", \"HDC-55\"]", "[\"HDC-50\", \"HDC-55\", \"HDC-55-2\"]", "[\"HDC-51\", \"HDC-55\", \"HDC-55-2\",\"HDC-21N\"]", 分別向四個(gè)字符串中添加String macType ="HDC-50" , 并判斷字符串中各個(gè)元素是否與macType相同, 相同則不添加, 不相同則添加. 最后輸出四個(gè)字符串,要求格式同開(kāi)始字符串格式一致.
思路:
這是不是普通的字符串, 而是json格式的字符串, 所以在判斷的時(shí)候, 可以選擇將多個(gè)字符串轉(zhuǎn)成jsonArray格式
延伸:
通常我們?cè)跀?shù)據(jù)庫(kù)中, 一個(gè)字段存儲(chǔ)多個(gè)字符串的數(shù)據(jù), 一般以json格式存入, 更新數(shù)據(jù)的時(shí)候,使用jsonArray轉(zhuǎn)化更方便
方法一: 普通方式,不使用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 中的中括號(hào)
String contentStr1 = content.replaceAll("[\\[\\]]", "");
List<String> content1= Arrays.asList(contentStr1.split(","));
List<String> list = new ArrayList<>();
for (String string : content1) {
list.add(string);
}
//判斷content中是否已經(jīng)包含macType
boolean flag = false;
for (String string : list) {
//去掉字符串的引號(hào)
String str= string.replace("\"", "");
if (macType.equals(str)) {
flag = true;
break;
}
}
//如果沒(méi)有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);
}
}
}
結(jié)果:

方法二: 使用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();
}
}
}
}
控制臺(tái)輸出:
到此這篇關(guān)于Java之JsonArray用法講解的文章就介紹到這了,更多相關(guān)Java之JsonArray用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot Jar 包部署腳本的實(shí)例講解
在本篇文章里小編給大家整理的是一篇關(guān)于Spring Boot Jar 包部署腳本的實(shí)例講解內(nèi)容,對(duì)此有興趣的朋友們可以跟著學(xué)習(xí)下。2021-12-12
SpringCloud Feign參數(shù)問(wèn)題及解決方法
這篇文章主要介紹了SpringCloud Feign參數(shù)問(wèn)題及解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
Java線(xiàn)程的start方法回調(diào)run方法的操作技巧
面試過(guò)程中經(jīng)常會(huì)被面試官問(wèn)到為什么我們調(diào)用start()方法時(shí)會(huì)執(zhí)行run()方法,為什么不能直接調(diào)用run()方法,問(wèn)的一頭霧水,今天小編給大家介紹下Java線(xiàn)程的start方法回調(diào)run方法的操作技巧,需要的朋友參考下吧2017-11-11
簡(jiǎn)單實(shí)現(xiàn)Spring的IOC原理詳解
這篇文章主要介紹了簡(jiǎn)單實(shí)現(xiàn)Spring的IOC原理詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12
mybatis中string和date的轉(zhuǎn)換方式
這篇文章主要介紹了mybatis中string和date的轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
SpringBoot管理RabbitMQ中的Channel詳解
這篇文章主要介紹了SpringBoot管理RabbitMQ中的Channel詳解,channel僅存在于connection的上下文中,而不會(huì)單獨(dú)存在,當(dāng)channel關(guān)閉時(shí),其上的所有channel也會(huì)關(guān)閉,需要的朋友可以參考下2023-08-08
Java Web 實(shí)現(xiàn)QQ登錄功能一個(gè)帳號(hào)同一時(shí)間只能一個(gè)人登錄
對(duì)于一個(gè)帳號(hào)在同一時(shí)間只能一個(gè)人登錄,下文給大家介紹的非常詳細(xì),對(duì)java web qq 登錄功能感興趣的朋友一起看看吧2016-11-11

