字节数组转化为字符串_数组字符串

字节数组转化为字符串_数组字符串//创建JSONArray,把JSONObject放到JSONArrayJSONArrayja=newJSONArray();//获取JSONArrayJSONArrayitems=response.getJSONArray(“items”);if(!items.isEmpty()){//获取JSO…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

如果用的是jar包 则导包为 net.sf.json.JSONObject 

如果用的是fastjson  则导包为 import com.alibaba.fastjson.JSONObject

以下为fastjson。。。 jar包不支持json按存放顺序打印 见https://blog.csdn.net/weixin_42498050/article/details/116118948

 

String字符串转为JSONObject

JSONObject response_clusterJson = JSONObject.parseObject(response_cluster);

Jetbrains全家桶1年46,售后保障稳定

 

 

   // 创建JSONArray,把JSONObject放到JSONArray
                JSONArray ja = new JSONArray();

                // 获取JSONArray
                JSONArray items = response.getJSONArray("items");
                if (!items.isEmpty()) {
                    // 获取JSONArray长度
                    int size = items.size();

                    // 如果JSONObject定义在for循环外面。则JSONArray结果会出现{"$ref":"$[0]"},{"$ref":"$[0]"}]
                    // https://blog.csdn.net/u014487025/article/details/82711925
//                    JSONObject jo = new JSONObject(true);

                    // for循环遍历JSONObject
                    // 判断items长度,原则上长度不会大于3
                    if (size >= 1 && size <= 3) {

                        for (int i = 0; i < size; i++) {
                            String name;
                            String address;
                            String cluster;
                            String status;

                            String location = "【items】JSONArray数组下第" + i + "个";

                            // items.name名称校验
                            name = items.getJSONObject(i).getString("name");
                            if (name.isEmpty() || name == null || name.length() == 0) {
                                System.err.println(bug + location + "name错误,结果为空,实际为" + name);
                            } else if (name.matches("edge\\S*")) {
//                                    System.out.println(pass  +location "名称符合正则");

                            }

                            // items.address主机名/IP校验
                            address = items.getJSONObject(i).getString("address");
                            if (address.isEmpty() || address == null || address.length() == 0) {
                                System.err.println(bug + location + "主机名/IP错误,结果为空,实际为" + address);
                            } else if (address.matches("[0-9a-z]+")) {
//                                    System.out.println(pass  +location "主机名/IP符合正则");
                            }

                            // items.cluster集群校验
                            cluster = items.getJSONObject(i).getString("cluster");
                            if (cluster.isEmpty() || cluster == null || cluster.length() == 0) {
                                System.err.println(bug + location + "集群错误,结果为空,实际为" + cluster);
                            } else if (cluster.equalsIgnoreCase("Default")) {
                                System.out.println(pass + location + "集群符合正则");
                            }

                            // items.status状态校验
                            status = items.getJSONObject(i).getString("status");
                            if (status.isEmpty() || status == null || status.length() == 0) {
                                System.err.println(bug + location + "状态错误,结果为空,实际为" + status);
                            } else if (status.matches("up|Up|down|Down")) {
                                System.out.println(pass + location + "状态符合正则");
                            }

                            /* 创建JSONObject对象,把key value放到JSONObject
                             JSONObject为每次创建出来的对象,不要设置为全局,加班加的蒙圈了,开始放到了for循环外层。。。https://blog.csdn.net/u014487025/article/details/82711925
                            JSONArray如果add同一个元素(比如a)两次及以上时,只有第一次add a时存放数据,其它位置,存放指向第一次add的a在JSONArray中的位置指针
                            */

                            /* 按放到JSONObject的顺序(如 name address cluster status )打印JSONObject/JSONArray。只需要在创建json对象的时候,后面ordered传true
                             之前一直报错是因为之前用的jar包方式,不支持true。改为maven配置后就可以了。。。默认不传true,则会按照value的名称排序(目前看是,具体要看JSONObject怎么定义的)
                             */

                            JSONObject jo = new JSONObject(true);

                            jo.put("name", name);
                            jo.put("address", address);
                            jo.put("cluster", cluster);
                            jo.put("status", status);
                            System.out.println("debug-jo JSONOObject格式,第" + i + "个数组==" + jo);

                            // 把JSONObject放到JSONOArray
                            ja.add(jo);

                        }

                        System.out.println("debug-ja的JSONOArray格式==" + ja);

                        // JSONOArray转json字符串
                        String jaStr = ja.toString();
                        System.out.println("debug-jaStr最终存入log的json格式==" + jaStr);

                        FileWrite.originLogOnlyWrite(jaStr, getcn);
}

 

运行结果

字节数组转化为字符串_数组字符串

 

不知道json格式的情况下 如何遍历所有key value?

 for (int i = 0; i < cmoja.size(); i++) {
                    // 不知道json格式的情况下,遍历所有的key value
                    JSONObject cmoob = cmoja.getJSONObject(i);
                    for (Map.Entry<String, Object> cmoentry : cmoob.entrySet()) {
                        String cmokey = cmoentry.getKey();
                        String cmovalue = (String) cmoentry.getValue();
//                        System.out.println("cmo系统的key值==【" + cmokey + "】,对应的value==【" + cmovalue + "】");
                        // 只需要校验value,不需要校验key,因为key是自己根据2端的数据自己定义的
                        // 校验mec接口是否包含cmo接口的全部value
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/226794.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • java 反射机制原理 简述[通俗易懂]

    java 反射机制原理 简述[通俗易懂]什么是反射机制?1、在运行状态中,对于任意一个类,都能够知道这个类的属性和方法。2、对于任意一个对象,都能够调用它的任何方法和属性。这种动态获取信息以及动态调用对象的方法的功能称为JAVA的反射。反射的作用1、在运行时判断任意一个对象所属的类;2、在运行时构造任意一个类的对象;3、在运行时判断任意一个类所具有的成员变量和方法;4、在运行时调用任意一个对象的方法;生成动态代理。反射的…

  • python读取excel单元格内容_python如何读取txt文件

    python读取excel单元格内容_python如何读取txt文件今天,跟大家谈一下用python计算Excel中的数据我们先学习读取Excel中的数据首先我们要安装xlrd库,在命令提示符(快捷键win+r)中输入:pipinstallxlrd下载完成xlrd库。首先呢,当然要先有一个Excel啦,如下:我们先仔细观察这个Excel,里面有2018、2017、2016的月收入来来来,跟着小哥哥一起月入3w!1、利用python读取Excel内容xrld库中的open_workbook函数可以打开Excel文件,并且返回一个代表打开Excel文

  • 子网划分,主机号,网络号计算

    子网划分,主机号,网络号计算这是在做网络题时总结的一些经验和见解,略显粗糙,主要是记一下常用的ABC3类地址和相关的子网号,主机号的计算ip地址     在主机或路由器中存放的IP地址(IPv4)都是32位的二进制代码。它包含了网络号(net-id)和主机号(host-id)两个独立的信息段。网络号用了标识主机或路由器所连接到的网络,主机号用来标识该主机或路由器。     为了提高可读性,每8位二进制数用一个…

  • 安装虚拟机蓝屏解决方法_vmware10虚拟机安装教程

    安装虚拟机蓝屏解决方法_vmware10虚拟机安装教程安装虚拟机VMwareWorkstation下载安装虚拟机16pro官网下载https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html选择你需要的版本获取虚拟机密钥下面三个选一个就好ZF3R0-FHED2-M80TY-8QYGC-NPKYFYF390-0HF8P-M81RQ-2DXQE-M2UT6ZF71R-DMX85-08DQY-8YMNC-PPHV8linu下载地址下载

  • java按字节、字符、行、随机读取文件,并设置字符编码格式

    java按字节、字符、行、随机读取文件,并设置字符编码格式

  • java jasypt_jasypt命令行工具的使用说明

    java jasypt_jasypt命令行工具的使用说明jasypt能够以很简单的方式为Java项目提供加密功能,这种简单的方式体现着它的命令行工具,与Spring,Hibernate,Springsecurity,wicket等第三方框架的集成。本文参加jasypt官方网站:http://www.jasypt.org/下载jasypt包,解压缩到本地目录。如下图:根目录:命令行工具目录:说明:在lib目录下是jasypt的核心jar和与第三方组件…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号