如果用的是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);
   // 创建JSONArray,把JSONObject放到JSONArrayJSONArray ja = new JSONArray();// 获取JSONArrayJSONArray 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长度,原则上长度不会大于3if (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放到JSONObjectJSONObject为每次创建出来的对象,不要设置为全局,加班加的蒙圈了,开始放到了for循环外层。。。https://blog.csdn.net/u014487025/article/details/82711925JSONArray如果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放到JSONOArrayja.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 valueJSONObject 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

String转JSONObject,JSONObject转JSONArray,JSONArray数组转换成JSON字符串相关推荐

  1. Java字节数组转换成十六进制字符串的几种方法

    前言 最近在项目中需要将字节数组转换成十六进制字符串,而Java内置的库中并没有相关工具可用,因此查了一下byte数组转hex字符串的相关方法,列出如下,需要可以直接拿来使用. 方法1:使用Strin ...

  2. Matlab 数字数组转换成集中字符串

    问题背景:Matlab 编程中有时需要将二维数组中的列或行转换成集成的字符串,效果如下,例如: 数组 a = [1 2; 3 4]; 将数组a的第1.2列转换成字符串 b = ['1,2,'; '3, ...

  3. Jquery中将数组转换成Json

    场景 在Jquery中遍历多选框,获取属性为checked即被选中的input的value. 实现 function printDetails(){debuggervar checkID = [];/ ...

  4. 数组转换成json key-value形式

    eg1(数组中包含的是数组): var jsonData = {}; var arr = [[1, 'boy', 'dabing'], [2, 'girl', 'dabing']]; for (var ...

  5. 使cson结构体中数组长度为空时,转换成Json字符串时输出空数组

    cson.c 文件 getJsonArray() 函数中 if (pSrc == NULL)  return ERR_MISSING_FIELD; 改为: if (pSrc == NULL) { cs ...

  6. php将数组转化成json字符串,php数组如何转换json字符串

    php数组转换json字符串的方法:首先创建一个php示例文件:然后定义一组数组数据:最后通过"json_encode($color)"方法将数组转换成json字符串即可. PHP ...

  7. php将字符串转成json字符串数组,php数组怎么转成json字符串

    在PHP中,可以使用json_encode()函数来将数组转化为json字符串,语法"json_encode(数组)".json_encode()函数可以对变量进行JSON编码,将 ...

  8. 二进制数组转成十六进制字符串,以及十六进制字符串转二进制字符串

    不说话,直接上代码. 1.二进制数组转十六进制字符串,下面两种方法都可以 /*** 将字节数组转换成十六进制字符串进行输出* @param bArr* @return*/public static f ...

  9. C#字节数组转换成字符串转

    C#字节数组转换成字符串 如果还想从 System.String 类中找到方法进行字符串和字节数组之间的转换,恐怕你会失望了.为了进行这样的转换,我们不得不借助另一个类:System.Text.Enc ...

最新文章

  1. 优雅处理你的Java异常
  2. MAS 714 笔记20:规约和SAT
  3. 让图片算好高宽再显示
  4. k3 物料收发明细表sql_物料管理:班组长物料使用应知应会4件事
  5. SqlServerDBHelper类
  6. 【OS学习笔记】二十 保护模式六:保户模式下操作系统内核如何加载用户程序并运行 对应的汇编代码之主引导扇区程序
  7. php 检查类,检查类是否已定义 - PHP 7 中文文档
  8. 零基础搭建Hadoop大数据处理
  9. 不用花钱,不用公网ip,用zerotier直接外网高速访问群晖,理论黑群晖白群晖都可以
  10. 三轴加速度传感器角度值转换原理
  11. 白帽专访丨大家好,我是阿杨,一个全职挖洞选手。
  12. 转帖 -- 仙4语录
  13. 使用SendCloud API来制作发送邮件的插件
  14. python画椭圆turtle_用python-turtle优雅的画椭圆
  15. 教你免费使用百度云GPU算力提交深度学习任务
  16. 智能手表的机遇与挑战
  17. 逆向小程序破解js神器-(工具篇)
  18. c++之多态性,什么是多态?如何实现?
  19. 看过千万的风景 比不上故乡的美丽
  20. 手把手教你使用CNN进行交通标志识别(已开源)

热门文章

  1. php获取月初月末时间戳
  2. ibm的主要竞争对手_IBM如何计划在云中竞争
  3. 概率论05 - 随机变量及其分布函数
  4. 在Android上启用Kiosk模式
  5. 原来在Android中请求权限也可以有这么棒的用户体验(转自郭霖)
  6. fuzzy仿真 MATLAB,基于MATLAB的FUZZY控制器的设计和仿真
  7. 《吃透MQ系列,图灵学院和咕泡学院
  8. 汽车遥控启动,车辆远程启动,汽车手机控制远程启动,都表示什么意思?如何使用?
  9. 20172307 / 20172311 结对编程项目-四则运算 第三周总结
  10. 计算机中信息的表示方法 教案,计算机中的数的表示教案