Java之JsonArray用法講解
更新時間:2021年08月11日 11:27:30 作者:xinyuezitang
這篇文章主要介紹了Java之JsonArray用法講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
需求:
四個字符串: "[\"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格式的字符串, 所以在判斷的時候, 可以選擇將多個字符串轉(zhuǎn)成jsonArray格式
延伸:
通常我們在數(shù)據(jù)庫中, 一個字段存儲多個字符串的數(shù)據(jù), 一般以json格式存入, 更新數(shù)據(jù)的時候,使用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 中的中括號
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) {
//去掉字符串的引號
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);
}
}
}
結(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();
}
}
}
}
控制臺輸出:
到此這篇關(guān)于Java之JsonArray用法講解的文章就介紹到這了,更多相關(guān)Java之JsonArray用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringCloud Feign參數(shù)問題及解決方法
這篇文章主要介紹了SpringCloud Feign參數(shù)問題及解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12
Java線程的start方法回調(diào)run方法的操作技巧
面試過程中經(jīng)常會被面試官問到為什么我們調(diào)用start()方法時會執(zhí)行run()方法,為什么不能直接調(diào)用run()方法,問的一頭霧水,今天小編給大家介紹下Java線程的start方法回調(diào)run方法的操作技巧,需要的朋友參考下吧2017-11-11
mybatis中string和date的轉(zhuǎn)換方式
這篇文章主要介紹了mybatis中string和date的轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
SpringBoot管理RabbitMQ中的Channel詳解
這篇文章主要介紹了SpringBoot管理RabbitMQ中的Channel詳解,channel僅存在于connection的上下文中,而不會單獨(dú)存在,當(dāng)channel關(guān)閉時,其上的所有channel也會關(guān)閉,需要的朋友可以參考下2023-08-08
Java Web 實現(xiàn)QQ登錄功能一個帳號同一時間只能一個人登錄
對于一個帳號在同一時間只能一個人登錄,下文給大家介紹的非常詳細(xì),對java web qq 登錄功能感興趣的朋友一起看看吧2016-11-11

