格式化[{“id“:1,“text“:“联想“},{“id“:3,“text“:“三星“}]为联想、三星

概述

首先看需求
需要将:[{“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);



    }

通过概述中的思路分析,其实看代码也就并不是那么难,其实你会发现这两个代码中有很多语句是相似的地方,其实是可以考虑在继续进行抽取的,往后吧,有时间来回顾抽取。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值