概述
首先看需求
需要将:[{“id”:1,“text”:“联想”},{“id”:3,“text”:“三星”},{“id”:2,“text”:“华为”},{“id”:5,“text”:“OPPO”},{“id”:4,“text”:“小米”},{“id”:9,“text”:“苹果”},{“id”:8,“text”:“魅族”},{“id”:6,“text”:“360”},{“id”:10,“text”:“VIVO”},{“id”:11,“text”:“诺基亚”},{“id”:12,“text”:“锤子”}]
转换为:联想,三星,华为,OPPO,小米,苹果,魅族,360,VIVO,诺基亚,锤子
并输出
第一步是分析字符串结构,字符串结构是符合json格式的,然后这有一个[],是有多个json对象并且存放到了数组中,使用json进行解析的时候,需要使用解析数组的parse方法
第二步在看转换的格式中的内容式需要转换格式中的text,然后每个text之间用,分隔,比如联想,三星
我们要输出联想,三星,华为,OPPO,小米,苹果,魅族,360,VIVO,诺基亚,锤子一般是使用字符串输出,也就是说可能[{“id”:1,“text”:“联想”},{“id”:3,“text”:“三星”}]的格式并不是很好看
我们要将它转换为好看一点的形式输出,都是展现,那么是可以选择字符串展现给前端的
联想,三星,华为,OPPO,小米,苹果,魅族,360,VIVO,诺基亚,锤子
如何做呐?我们观察一下,其实除开第一个的话,都是在每个词前加了个,号 ,三星 ,华为
或者除开最后一个,是在每个词后加,号 联想, 华为,
找到了规律我们也就有了思路,然后再对特殊情况进行处理也就没有问题了
method1是第一个思路
method2是第二个思路
demo
方法一:
public static void method1(String str){
//json数组对象
JSONArray jsonArray = JSONObject.parseArray(str);
System.out.println(jsonArray);
String value="";
//首先根据text取到联想,取到值后,拼到新的字符串中,然后输出
for (int i=0;i<jsonArray.size();i++){
Object o = jsonArray.get(i);
JSONObject json = (JSONObject) o;
//如果是第一次进来那么i==0,则,这个时候不加,当i>0的时候则在text值前拼一个,
if (i>0){
value +=",";
}
//获取到一个json对象
value += json.getString("text");
}
System.out.println(value);
System.out.println();
}
方法二:
public static void method2(String str){
//转换为json数组对象
//json数组对象
JSONArray jsonArray = JSONObject.parseArray(str);
System.out.println(jsonArray);
String value="";
for (int i=0;i<jsonArray.size();i++){
//1.获取json对象
Object o = jsonArray.get(i);
JSONObject json = (JSONObject) o;
//2.获取到text的值,
String text = json.getString("text");
//3.做条件判断和拼接
value += json.getString("text");
if (i<jsonArray.size()-1){
value += ",";
}
}
System.out.println(value);
}
通过概述中的思路分析,其实看代码也就并不是那么难,其实你会发现这两个代码中有很多语句是相似的地方,其实是可以考虑在继续进行抽取的,往后吧,有时间来回顾抽取。