参考:

https://www.cnblogs.com/cdf-opensource-007/p/7106018.html

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; public class JsonTest2 { public static void main(String[] args) { String arrContent = "[\n" +
" {\n" +
" \"astnamebyuser\": \"资产名称1\",\n" +
" \"ip\": 10,\n" +
" \"port\": \"\",\n" +
" \"companytypeid\": \"\",//组织机构一级导航id\n" +
" \"deptid\": \"\",//组织架构二级导航id\n" +
" \"infosysid\": \"\",//信息系统id\n" +
" \"devicetypeid\": \"\",//设备类型id\n" +
" \"templategroupid\":\"\",//模板分组id\n" +
" \"templateid\": \"\",//模板id\n" +
" \"templatename\": \"\",//如果非自定义模板传null,如果是自定义模板传自定义名称\n" +
" \"certificateusername\": \"\",//用户名\n" +
" \"certificatepassword\": \"\",//密码\n" +
" \"principal\": \"\",//维护人\n" +
" \"department\": \"\",//所属部门\n" +
" \"description\": \"\"//备注\n" +
" },\n" +
" {\n" +
" \"astnamebyuser\": \"资产名称2\",\n" +
" \"ip\": 11,\n" +
" \"port\": \"\",\n" +
" \"companytypeid\": \"\",//组织机构一级导航id\n" +
" \"deptid\": \"\",//组织架构二级导航id\n" +
" \"infosysid\": \"\",//信息系统id\n" +
" \"devicetypeid\": \"\",//设备类型id\n" +
" \"templategroupid\":\"\",//模板分组id\n" +
" \"templateid\": \"\",//模板id\n" +
" \"templatename\": \"\",//如果非自定义模板传null,如果是自定义模板传自定义名称\n" +
" \"certificateusername\": \"\",//用户名\n" +
" \"certificatepassword\": \"\",//密码\n" +
" \"principal\": \"\",//维护人\n" +
" \"department\": \"\",//所属部门\n" +
" \"description\": \"\"//备注\n" +
" }\n" +
" ]"; JSONArray jsonArray = JSON.parseArray(arrContent);
for (Object obj :
jsonArray) {
JSONObject jsonObject = (JSONObject) obj;
// 这里要看传的是String还是Integer,得按照对应的数据类型来获取,否则会抛出异常
System.out.println(jsonObject.getString("astnamebyuser")+" "+jsonObject.getInteger("ip"));
} } }

目前所在公司的前端一般一律传字符串,所以用起来还是挺方便的,直接 getString 就行了,不过如果传的是特定的数据类型,就得用特定的方法来获取,比如 integer类型的,就要用 getInteger 来进行获取

下面这个是把循环遍历中的obj通过getString/getInteger/其他获取数据类型的方法  来获取键的值,然后用bean的set方法进行赋值,最后对整个bean进行处理就行了

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.kinome.rm.bean.Assets; public class JsonTest2 { public static void main(String[] args) { String content = "{\n" +
" \"ipgrouplist\":[\n" +
" {\n" +
" \"astnamebyuser\": \"资产名称1\",\n" +
" \"ip\": \"192.168.1.1\",\n" +
" \"port\": \"\",\n" +
" \"companytypeid\": \"\",//组织机构一级导航id\n" +
" \"deptid\": \"\",//组织架构二级导航id\n" +
" \"infosysid\": \"\",//信息系统id\n" +
" \"devicetypeid\": \"\",//设备类型id\n" +
" \"templategroupid\":\"\",//模板分组id\n" +
" \"templateid\": \"\",//模板id\n" +
" \"templatename\": \"\",//如果非自定义模板传null,如果是自定义模板传自定义名称\n" +
" \"certificateusername\": \"\",//用户名\n" +
" \"certificatepassword\": \"\",//密码\n" +
" \"principal\": \"\",//维护人\n" +
" \"department\": \"\",//所属部门\n" +
" \"description\": \"\"//备注\n" +
" },\n" +
" {\n" +
" \"astnamebyuser\": \"资产名称2\",\n" +
" \"ip\": \"192.168.1.2\",\n" +
" \"port\": \"\",\n" +
" \"companytypeid\": \"\",//组织机构一级导航id\n" +
" \"deptid\": \"\",//组织架构二级导航id\n" +
" \"infosysid\": \"\",//信息系统id\n" +
" \"devicetypeid\": \"\",//设备类型id\n" +
" \"templategroupid\":\"\",//模板分组id\n" +
" \"templateid\": \"\",//模板id\n" +
" \"templatename\": \"\",//如果非自定义模板传null,如果是自定义模板传自定义名称\n" +
" \"certificateusername\": \"\",//用户名\n" +
" \"certificatepassword\": \"\",//密码\n" +
" \"principal\": \"\",//维护人\n" +
" \"department\": \"\",//所属部门\n" +
" \"description\": \"\"//备注\n" +
" }\n" +
" ],\n" +
" \"ipgroupname\":\"ip组1\",\n" +
" \"execmethod\":\"1\",\n" +
" \"taskdescription\":\"描述\"\n" +
"\n" +
"}"; JSONObject parseObject = JSON.parseObject(content);
JSONArray jsonArray = parseObject.getJSONArray("ipgrouplist");
String ipgroupname = parseObject.getString("ipgroupname");
String execmethod = parseObject.getString("execmethod");
String taskdescription = parseObject.getString("taskdescription");
Assets assets = new Assets(); System.out.println(ipgroupname + " " + execmethod + " " + taskdescription);
for (Object obj :
jsonArray) {
JSONObject jsonObject = (JSONObject) obj;
assets.setIp(jsonObject.getString("ip"));
System.out.println(jsonObject.toString());
} } }

fastjson 使用记录的更多相关文章

  1. JSON工具类库: alibaba/fastjson 使用记录

    JSON工具类库: alibaba/fastjson 使用记录 一.了解JSON JSON标准规范中文文档: http://www.json.org/json-zh.html 最佳实践:http:// ...

  2. 【Json】fastjson与jackson常用操作记录

    本文只是记录fastjson.jackson一些常用的操作方法,没作比较,网上写比较的文章很多啦. 1.对象转Json串 // fastjson String objStr = JSON.toJSON ...

  3. 记录心得-FastJson分层解析demo示例

    记录一下,平时用到,可速查!关键: // startArray(); 开始解析数组 // endArray(); 结束解析数组 // startObject(); 开始解析键值对 // endObje ...

  4. [Java学习] JSON工具学习记录--FastJSON

    最近做项目,总是与json打交道,在用了即可json工具后,个人认为fastJson最好用,很方便,API也清晰可见,所以记录下使用方法,给需要的人提供帮助.(部分摘抄自网络) 一.API入口 Fas ...

  5. 关于一种fastjson的死循环情况记录

    最近在一次项目中,使用fastjson做接口转换中,碰到了一个Stack Overflow.发现在getxxx方法内如果再次嵌套使用fastjson作json转换,就会无限循环. 错误实例: clas ...

  6. fastjson过滤器简单记录

    fastjson过滤器,该字段可以将转化的json字段遍历,方便实用 1 /** * 通用输出json * @param object * @return json字符串 */ public Stri ...

  7. fastjson 1.2.24反序列化导致任意命令执行漏洞分析记录

    环境搭建: 漏洞影响版本: fastjson在1.2.24以及之前版本存在远程代码执行高危安全漏洞 环境地址: https://github.com/vulhub/vulhub/tree/master ...

  8. 记录一次源码扩展案列——FastJson自定义反序列化ValueMutator

    背景:曾经遇到一个很麻烦的事情,就是一个json串中有很多占位符,需要替换成特定文案.如果将json转换成对象后,在一个一个属性去转换的话就出出现很多冗余代码,不美观也不是很实用. 而且也不能提前在j ...

  9. Android开发经验记录

    一.    代码规范 定一个规范的主要目的,是为了让不同的开发人员写的代码能保持一致性,方便别人看自己的代码.另外,对个人来说,也能起到让自己看着舒服的作用. 1.      基本 * 使用UTF-8 ...

随机推荐

  1. 10款jQuery文本高亮插件

    [编者按]本文作者为 Julian Motz,主要介绍十款 jQuery 文本高亮插件的现状.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 很多应用或网站都为用户提供搜索关键词的方法.为了 ...

  2. Net Core通用主机项目报错 程序不包含适合于入口点的静态Main

    Net Core通用主机的介绍: https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/host/generic-host?view=as ...

  3. Oracle EBS FTP显示无法与某IP 连接

    首先 用root用户登录 如果可以登录 那么应该是权限的问题 这里选择 方法二:修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示: ## Allow root to ...

  4. Oracle EBS AP 发票放弃行

    -- purpose: 应付发票放弃发票行 -- 12.2.6 环境 -- author:jenrry create_date: 2017-06-07 declare l_dummy_msg VARC ...

  5. scp机器间远程拷贝

    scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令.linux的scp命令可以在linux服务器之间复制文件和目录. 使用语法:scp  [参数 ...

  6. Linux运维之系统性能瓶颈工具vmstat分析

    vmstat是一个很好用的检测系统性能工具,没有过多的参数,直接一个vmstat命令即可,不过我们一般加上-w表示宽格式输出.然后再附加上侦测时间即可 例如: vmstat 表示每3秒检测一次并输出系 ...

  7. django版本切换以及更改url(pycharm)

    Django版本切换:https://blog.csdn.net/weixin_42305814/article/details/80742090 因为是从2版本更改到1版本,所以里面一些东西需要变动 ...

  8. 通过sqli-labs学习sql注入——基础挑战之less1-3

    首先,先看一些基础知识吧!!!!本人只是初学者,记录一下自己的学习过程,有什么错误之处请指出,谢谢!大佬请绕过!!!! url编码:一般的url编码其实就是那个字符的ASCII值得十六进制,再在前面加 ...

  9. [ML学习笔记] 决策树与随机森林(Decision Tree&Random Forest)

    [ML学习笔记] 决策树与随机森林(Decision Tree&Random Forest) 决策树 决策树算法以树状结构表示数据分类的结果.每个决策点实现一个具有离散输出的测试函数,记为分支 ...

  10. [python]关于在python中模块导入问题追加总结

    [背景] 最近在写程序时,我使用的eclipse编辑器运行都没有问题,然后部署到自动化环境上却偏偏报找不到相应模块问题,现在对该问题在之前的贴子上追加总结 原帖子:[python]关于python中模 ...