fastjson 使用记录
参考:
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 使用记录的更多相关文章
- JSON工具类库: alibaba/fastjson 使用记录
JSON工具类库: alibaba/fastjson 使用记录 一.了解JSON JSON标准规范中文文档: http://www.json.org/json-zh.html 最佳实践:http:// ...
- 【Json】fastjson与jackson常用操作记录
本文只是记录fastjson.jackson一些常用的操作方法,没作比较,网上写比较的文章很多啦. 1.对象转Json串 // fastjson String objStr = JSON.toJSON ...
- 记录心得-FastJson分层解析demo示例
记录一下,平时用到,可速查!关键: // startArray(); 开始解析数组 // endArray(); 结束解析数组 // startObject(); 开始解析键值对 // endObje ...
- [Java学习] JSON工具学习记录--FastJSON
最近做项目,总是与json打交道,在用了即可json工具后,个人认为fastJson最好用,很方便,API也清晰可见,所以记录下使用方法,给需要的人提供帮助.(部分摘抄自网络) 一.API入口 Fas ...
- 关于一种fastjson的死循环情况记录
最近在一次项目中,使用fastjson做接口转换中,碰到了一个Stack Overflow.发现在getxxx方法内如果再次嵌套使用fastjson作json转换,就会无限循环. 错误实例: clas ...
- fastjson过滤器简单记录
fastjson过滤器,该字段可以将转化的json字段遍历,方便实用 1 /** * 通用输出json * @param object * @return json字符串 */ public Stri ...
- fastjson 1.2.24反序列化导致任意命令执行漏洞分析记录
环境搭建: 漏洞影响版本: fastjson在1.2.24以及之前版本存在远程代码执行高危安全漏洞 环境地址: https://github.com/vulhub/vulhub/tree/master ...
- 记录一次源码扩展案列——FastJson自定义反序列化ValueMutator
背景:曾经遇到一个很麻烦的事情,就是一个json串中有很多占位符,需要替换成特定文案.如果将json转换成对象后,在一个一个属性去转换的话就出出现很多冗余代码,不美观也不是很实用. 而且也不能提前在j ...
- Android开发经验记录
一. 代码规范 定一个规范的主要目的,是为了让不同的开发人员写的代码能保持一致性,方便别人看自己的代码.另外,对个人来说,也能起到让自己看着舒服的作用. 1. 基本 * 使用UTF-8 ...
随机推荐
- 使用动态跟踪技术SystemTap监控MySQL、Oracle性能
[IT168 技术]本文根据吕海波2018年5月11日在[第九届中国数据库技术大会]上的演讲内容整理而成. 讲师介绍: 吕海波,美创科技研究员,ITPUB管理版版主.出版技术书籍<Oracle内 ...
- heckboxlist详细用法、checkboxlist用法、checkboxlist
heckboxlist详细用法.checkboxlist用法.checkboxlist for (int i = 0; i < CheckBoxList1.Items.Count; i++) { ...
- tomcat 闪退处理
参考文章:https://www.cnblogs.com/lanjianhappy/p/6491436.html 首先确保JDK环境变量已经配置好! 设置jdk环境 变量:https://jingya ...
- olivettifaces数据集实现人脸识别代码
数据集: # -*- coding: utf-8 -*- """ Created on Wed Apr 24 18:21:21 2019 @author: 92958 & ...
- Lombok快速上手(安装、使用与注解参数)
目录 Lombok插件安装与使用说明 常见参数 lombok的依赖于安装 依赖管理 IDEA插件的安装 @Data小例子 扩展@ToString 构造器注解扩展 @Log及其他日志注解 资料链接 Lo ...
- PyQt5--QFontDiaglog
# -*- coding:utf-8 -*- ''' Created on Sep 17, 2018 @author: SaShuangYiBing Comment: ''' import sys f ...
- 三、git管理修改
一.修改提交 如下图,Git分工作区和版本库(.git隐藏目录中). 在每次修改后 git add "file name" 其实是把修改内容提交到本地版本库的 暂存区(stage) ...
- swift static与class修饰符:static不参与动态派发
static与class 都有类型成员的含义:相对于实例成员: static的另一个意思是静态派发:所以不能被继承. 要使用动态派发和继承的机制必须使用class继承. static的其它常见含义: ...
- spring引入properties变量报错
通过properties配置文件配置数据源,代码如下: <bean class="org.springframework.beans.factory.config.PropertyPl ...
- rlwrap与历史命令
# yum install rlwrap $ vi .bash_profile alias sqlplus='rlwrap sqlplus'alias rman='rlwrap rman' 或者 l ...