前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >字节数组转化为字符串_数组字符串

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

作者头像
全栈程序员站长
发布2022-11-16 18:16:53
1.2K0
发布2022-11-16 18:16:53
举报
文章被收录于专栏:全栈程序员必看

如果用的是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

代码语言:javascript
复制
JSONObject response_clusterJson = JSONObject.parseObject(response_cluster);

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

代码语言:javascript
复制
   // 创建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?

代码语言:javascript
复制
 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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档