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 ...
随机推荐
- SQL SERVER怎样将某个服务器上面的数据自动备份到另一台服务器上面(异地备份)
一:试验背景 异地备份好处:(待补充) 1:异地备份了把原有服务器数据放在另外一个位置,避免些物理损害. 比把数据刻录光盘和原始数据放同房间了房间失火了备份数据也没有了要放另外地方避免了 就是备份 ...
- C++设计模式 ==> 装饰(者)模式
简介 装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象.装饰模式使用对象嵌套的思想,实现对一个对象动态地进行选择性的属 ...
- 通过C/C++基于http下载文件
简介 Windows系统如何通过C/C++下载互联网上的文件呢?这里笔者给大家演示一个最简单的方法,利用Windows提供的urlmon库,可以快速实现文件下载的简单实例. 注:本文内容部分参考了&l ...
- October 31st, 2017 Week 44th Tuesday
No matter how hard the past is, you can always begin again. 不管过去有多么困难,你都可以重新开始. Honestly, I don't ag ...
- js常见执行方法window.onload = function (){},$(document).ready()
1. window.onload = function(){}; 当页面DOM对象加载完毕,web浏览器能够运行JS时,此方法即被触发. 2. $(document).ready();当web页面以及 ...
- leetcode 6. ZigZag Conversion [java]
自己写的: if(numRows == 1) return s; int ll = s.length() / 2 + 1; Character tc[] = new Character[numRows ...
- Java BAT大型公司面试必考技能视频-1.HashMap源码分析与实现
视频通过以下四个方面介绍了HASHMAP的内容 一. 什么是HashMap Hash散列将一个任意的长度通过某种算法(Hash函数算法)转换成一个固定的值. MAP:地图 x,y 存储 总结:通过HA ...
- Oracle Spatial中SDO_Geometry说明
Oracle Spatial中SDO_Geometry说明 在ArcGIS中通过SDE存储空间数据到Oracle中有多种存储方式,分别有:二进制Long Raw .ESRI的ST_Geometry以及 ...
- python string.md
string 包含用于处理文本的常量和类.string模块始于Python的最早版本. 2.0版本中, 许多之前只在模块中实现的函数被转移为string对象的方法. 之后的版本中, 虽然这些函数仍然可 ...
- 线程相关代码分析->常见面试题(一、Thead类)
As always,我们直接看jdk的代码切入: 首先是最简单的Runnable接口: public interface Runnable { public abstract void run(); ...