一个java处理JSON格式数据的通用类

INCA_ProF脚本教程 一、首先INCA软件是当前主流标定开发软件之一,尤其在动力系统控制器的标定中应用非常广泛;与此同时ProF编程脚本是INCA软件提供各种实用功能之一,使用者可根据需求编写ProF脚本语言对ECU闪存编程等各种自定义操作。 二、然而ProF脚本语言在ETAS的官网或其他网络上并没有专门的使用教程,通常只有ETAS技术支持人员提供的ProF Documentation文档或少量可参考的Demo案例,然而ProF Documentation文档仅涉及ProF语言的函数的操作说明,没有从全局的框架上介绍Pro 阅读详情

 进入需要在项目中用java处理json格式的数据,因此封装了一个class,现将这个class共享出来和大家分享
通用类中用的道JAR包:http://www.blogjava.net/Files/fanyingjie/json-lib-2.2.3.rar

  1 /**
  2 
  3 * Copyright (c) linkwise 2007-2009 corporation.
  4 
  5 * All rights reserved
  6 
  7 */
  8 
  9 package com.linghui.common.util;
 10 
 11 import java.util.ArrayList;
 12 
 13 import java.util.Date;
 14 
 15 import java.util.HashMap;
 16 
 17 import java.util.Iterator;
 18 
 19 import java.util.List;
 20 
 21 import java.util.Map;
 22 
 23 import net.sf.json.JSONArray;
 24 
 25 import net.sf.json.JSONObject;
 26 
 27 import net.sf.json.JsonConfig;
 28 
 29 import net.sf.json.util.CycleDetectionStrategy;
 30 
 31 import com.linghui.common.util.DateUtil;
 32 
 33 import com.linghui.common.util.jsonutil.DateJsonValueProcessor;
 34 
 35 /**
 36 
 37 *
 38 
 39 */
 40 
 41 public class JsonUtil {
 42 
 43 /**
 44 
 45 * 从一个JSON 对象字符格式中得到一个java对象
 46 
 47 * @param jsonString
 48 
 49 * @param pojoCalss
 50 
 51 * @return
 52 
 53 */
 54 
 55 public static Object getObject4JsonString(String jsonString,Class pojoCalss){
 56 
 57 Object pojo;
 58 
 59 JSONObject jsonObject = JSONObject.fromObject( jsonString );
 60 
 61 pojo = JSONObject.toBean(jsonObject,pojoCalss);
 62 
 63 return pojo;
 64 
 65 }
 66 
 67 /**
 68 
 69 * 从json HASH表达式中获取一个map,改map支持嵌套功能
 70 
 71 * @param jsonString
 72 
 73 * @return
 74 
 75 */
 76 
 77 public static Map getMap4Json(String jsonString){
 78 
 79 JSONObject jsonObject = JSONObject.fromObject( jsonString );
 80 
 81 Iterator keyIter = jsonObject.keys();
 82 
 83 String key;
 84 
 85 Object value;
 86 
 87 Map valueMap = new HashMap();
 88 
 89 while( keyIter.hasNext())
 90 
 91 {
 92 
 93 key = (String)keyIter.next();
 94 
 95 value = jsonObject.get(key);
 96 
 97 valueMap.put(key, value);
 98 
 99 }
100 
101 return valueMap;
102 
103 }
104 
105 /**
106 
107 * 从json数组中得到相应java数组
108 
109 * @param jsonString
110 
111 * @return
112 
113 */
114 
115 public static Object getObjectArray4Json(String jsonString){
116 
117 JSONArray jsonArray = JSONArray.fromObject(jsonString);
118 
119 return jsonArray.toArray();
120 
121 }
122 
123 /**
124 
125 * 从json对象集合表达式中得到一个java对象列表
126 
127 * @param jsonString
128 
129 * @param pojoClass
130 
131 * @return
132 
133 */
134 
135 public static List getList4Json(String jsonString, Class pojoClass){
136 
137 JSONArray jsonArray = JSONArray.fromObject(jsonString);
138 
139 JSONObject jsonObject;
140 
141 Object pojoValue;
142 
143 List list = new ArrayList();
144 
145 for ( int i = 0 ; ijsonArray.size(); i++){
146 
147 jsonObject = jsonArray.getJSONObject(i);
148 
149 pojoValue = JSONObject.toBean(jsonObject,pojoClass);
150 
151 list.add(pojoValue);
152 
153 }
154 
155 return list;
156 
157 }
158 
159 /**
160 
161 * 从json数组中解析出java字符串数组
162 
163 * @param jsonString
164 
165 * @return
166 
167 */
168 
169 public static String getStringArray4Json(String jsonString){
170 
171 JSONArray jsonArray = JSONArray.fromObject(jsonString);
172 
173 String stringArray = new String[jsonArray.size()];
174 
175 for( int i = 0 ; ijsonArray.size() ; i++ ){
176 
177 stringArray[i] = jsonArray.getString(i);
178 
179 }
180 
181 return stringArray;
182 
183 }
184 
185 /**
186 
187 * 从json数组中解析出javaLong型对象数组
188 
189 * @param jsonString
190 
191 * @return
192 
193 */
194 
195 public static Long getLongArray4Json(String jsonString){
196 
197 JSONArray jsonArray = JSONArray.fromObject(jsonString);
198 
199 Long longArray = new Long[jsonArray.size()];
200 
201 for( int i = 0 ; ijsonArray.size() ; i++ ){
202 
203 longArray[i] = jsonArray.getLong(i);
204 
205 }
206 
207 return longArray;
208 
209 }
210 
211 /**
212 
213 * 从json数组中解析出java Integer型对象数组
214 
215 * @param jsonString
216 
217 * @return
218 
219 */
220 
221 public static Integer getIntegerArray4Json(String jsonString){
222 
223 JSONArray jsonArray = JSONArray.fromObject(jsonString);
224 
225 Integer integerArray = new Integer[jsonArray.size()];
226 
227 for( int i = 0 ; ijsonArray.size() ; i++ ){
228 
229 integerArray[i] = jsonArray.getInt(i);
230 
231 }
232 
233 return integerArray;
234 
235 }
236 
237 /**
238 
239 * 从json数组中解析出java Date 型对象数组,使用本方法必须保证
240 
241 * @param jsonString
242 
243 * @return
244 
245 */
246 
247 public static Date getDateArray4Json(String jsonString,String DataFormat){
248 
249 JSONArray jsonArray = JSONArray.fromObject(jsonString);
250 
251 Date dateArray = new Date[jsonArray.size()];
252 
253 String dateString;
254 
255 Date date;
256 
257 for( int i = 0 ; ijsonArray.size() ; i++ ){
258 
259 dateString = jsonArray.getString(i);
260 
261 date = DateUtil.stringToDate(dateString, DataFormat);
262 
263 dateArray[i] = date;
264 
265 }
266 
267 return dateArray;
268 
269 }
270 
271 /**
272 
273 * 从json数组中解析出java Integer型对象数组
274 
275 * @param jsonString
276 
277 * @return
278 
279 */
280 
281 public static Double getDoubleArray4Json(String jsonString){
282 
283 JSONArray jsonArray = JSONArray.fromObject(jsonString);
284 
285 Double doubleArray = new Double[jsonArray.size()];
286 
287 for( int i = 0 ; ijsonArray.size() ; i++ ){
288 
289 doubleArray[i] = jsonArray.getDouble(i);
290 
291 }
292 
293 return doubleArray;
294 
295 }
296 
297 /**
298 
299 * 将java对象转换成json字符串
300 
301 * @param javaObj
302 
303 * @return
304 
305 */
306 
307 public static String getJsonString4JavaPOJO(Object javaObj){
308 
309 JSONObject json;
310 
311 json = JSONObject.fromObject(javaObj);
312 
313 return json.toString();
314 
315 }
316 
317 /**
318 
319 * 将java对象转换成json字符串,并设定日期格式
320 
321 * @param javaObj
322 
323 * @param dataFormat
324 
325 * @return
326 
327 */
328 
329 public static String getJsonString4JavaPOJO(Object javaObj , String dataFormat){
330 
331 JSONObject json;
332 
333 JsonConfig jsonConfig = configJson(dataFormat);
334 
335 json = JSONObject.fromObject(javaObj,jsonConfig);
336 
337 return json.toString();
338 
339 }
340 
341 /**
342 
343 * @param args
344 
345 */
346 
347 public static void main(String args) {
348 
349 // TODO 自动生成方法存根
350 
351 }
352 
353 /**
354 
355 * JSON 时间解析器具
356 
357 * @param datePattern
358 
359 * @return
360 
361 */
362 
363 public static JsonConfig configJson(String datePattern) {
364 
365 JsonConfig jsonConfig = new JsonConfig();
366 
367 jsonConfig.setExcludes(new String{""});
368 
369 jsonConfig.setIgnoreDefaultExcludes(false);
370 
371 jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
372 
373 jsonConfig.registerJsonValueProcessor(Date.class,
374 
375 new DateJsonValueProcessor(datePattern));
376 
377 return jsonConfig;
378 
379 }
380 
381 /**
382 
383 *
384 
385 * @param excludes
386 
387 * @param datePattern
388 
389 * @return
390 
391 */
392 
393 public static JsonConfig configJson(String excludes,
394 
395 String datePattern) {
396 
397 JsonConfig jsonConfig = new JsonConfig();
398 
399 jsonConfig.setExcludes(excludes);
400 
401 jsonConfig.setIgnoreDefaultExcludes(false);
402 
403 jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
404 
405 jsonConfig.registerJsonValueProcessor(Date.class,
406 
407 new DateJsonValueProcessor(datePattern));
408 
409 return jsonConfig;
410 
411 }
412 
413 }
414 
415 /**
416 
417 * linkwise
418 
419 */
420 
421 package com.linghui.common.util.jsonutil;
422 
423 import java.text.DateFormat;
424 
425 import java.text.SimpleDateFormat;
426 
427 import java.util.Date;
428 
429 import net.sf.json.JsonConfig;
430 
431 import net.sf.json.processors.JsonValueProcessor;
432 
433 /**
434 
435 * @author robert.feng
436 
437 *
438 
439 */
440 
441 public class DateJsonValueProcessor implements JsonValueProcessor {
442 
443 public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd";
444 
445 private DateFormat dateFormat;
446 
447 /**
448 
449 * 构造方法.
450 
451 *
452 
453 * @param datePattern 日期格式
454 
455 */
456 
457 public DateJsonValueProcessor(String datePattern) {
458 
459 if( null datePattern )
460 
461 dateFormat = new SimpleDateFormat(DEFAULT_DATE_PATTERN);
462 
463 else
464 
465 dateFormat = new SimpleDateFormat(datePattern);
466 
467 }
468 
469 /* (非 Javadoc)
470 
471 * @see net.sf.json.processors.JsonValueProcessor#processArrayValue(java.lang.Object, net.sf.json.JsonConfig)
472 
473 */
474 
475 public Object processArrayValue(Object arg0, JsonConfig arg1) {
476 
477 // TODO 自动生成方法存根
478 
479 return process(arg0);
480 
481 }
482 
483 /* (非 Javadoc)
484 
485 * @see net.sf.json.processors.JsonValueProcessor#processObjectValue(java.lang.String, java.lang.Object, net.sf.json.JsonConfig)
486 
487 */
488 
489 public Object processObjectValue(String arg0, Object arg1, JsonConfig arg2) {
490 
491 // TODO 自动生成方法存根
492 
493 return process(arg1);
494 
495 }
496 
497 private Object process(Object value) {
498 
499 return dateFormat.format((Date) value);
500 
501 }
502 
503 }

RPA实战:手把手教你打造抖音自动养号机器人(含避坑指南) 本文详细介绍了如何利用RPA技术从零构建一个智能化的抖音自动养号机器人。内容涵盖环境准备、核心工具选型、拟人化行为流程设计、代码实现模块拆解,并提供了关键的避坑指南与风控对抗策略,帮助开发者高效、稳定地实现账号自动化运营。 阅读详情

相关推荐

通信系统原理[郭宇春]——模拟调制系统——课后习题答案

通信系统原理[郭宇春]——第三章课后习题答案,出错望指正!

尧呱呱的博客 3844

Java中关于JSON格式数据的操作

对于java格式数据的处理: 1: 先创建java类,例如: public class Brand { private String id; private String brandName;; public void setId(String id) { this.id = id; } public String getId() { return id; ......

qq_50587186的博客 3629

软件项目管理期末复习(看这一篇就够了)

软件项目管理考试复习 🔶🔶🔶🔶🔶加了🔶的是考点 第一章软件项目管理概述 1.1.1项目及其特征 项目定义:🔶 项目就是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力; 是以一套独特而互相联系的任务为前提,有效地利用资源,在一段时间内满足一系列特定目标的多项相关工作的总称。 日常运作和项目的区别: 项目是一次性的,而日常运作是重复进行的。 项目是以目标为导向的,日常运作是通过效率和有效性体现的。 项目是通过项目经理及其团队工作完成的,日常运作是职能式的线性管理。 项目存在大量的变更管理,

qq_50886857的博客 3万+

Java基础篇--JSON

从Github中的统计来看,Jackson能够成为最流行的JSON解析器之一,Spring MVC的默认json解析器便是Jackson,这归功于它的诸多优点和灵活的API。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,采用的是键值对的方式,包含对象(或者叫记录、结构、字典、哈希表、有键列表或关联数组等)和数组两种结构。它使用了独创的算法来优化解析和生成JSON的速度,这使得它在速度上超过了其他所有的JSON库。

m0_74293254的博客 8618

避坑指南:Windows11语言包安装后部分界面仍显示中文的终极解决方案

本文详细解析了Windows11语言包安装后部分界面仍显示中文的问题,提供了从基础到进阶的完整解决方案。通过PowerShell命令、注册表清理和系统文件检查等方法,帮助用户彻底解决语言显示不一致的问题,确保系统界面语言统一。

weixin_29232507的博客 1639

Python爬虫实战:如何抓取旅游论坛上的帖子、旅行攻略和评论内容

无论是知名的旅游网站,还是地方性的旅游讨论区,用户发布的旅行贴文、攻略和评论往往包含着大量的宝贵信息。本文将详细介绍如何使用Python编写一个爬虫,抓取旅游论坛上的帖子、旅行攻略和评论内容,涵盖从获取页面内容、解析数据到处理动态加载等各个方面的技术。从基本的请求和网页解析,到动态加载页面的处理,再到数据存储和反爬虫技巧,我们详细讲解了抓取旅游论坛数据的全过程。通过本文的介绍,你可以将所学的爬虫技术应用到其他类似的网站抓取任务中,为后续的数据分析、机器学习等任务提供丰富的数据源。在这种情况下,传统的。

2201_76125261的博客 1557

Java 处理JSON 数据小结

Java JSON处理

Lakers2015的博客 3611

2025华为杯第二十二届中国研究生数学建模竞赛C题:围岩裂隙精准识别与三维模型重构 - 完整解题分析+完整MATLAB源码!(下篇)

🎓 本文收录于 《滚雪球学数学建模》专栏,本专栏专注于从零基础出发,带你循序渐进掌握数学建模的核心方法与思维路径。通过“滚雪球式”学习法,从最简单的生活化案例到经典建模工具,再到省赛、国赛真题实战演练,逐步积累知识与技能,帮助你搭建完整的建模体系。无论你是刚接触建模的新生,还是希望提升科研与竞赛能力的学者与工程师,本专栏都将为你提供一条清晰、高效、可实操的建模成长路线,助力你快速进阶,突破难点,迈向数学建模竞赛与实际应用的更高峰 🚀!

**My Coding Family** 1620

Java中常用的几种JSON格式的转换

JSON在传输数据时,起到了特别大的作用,因此出现了各种各样五花八门的JSON转换第三方包,在这里做一个汇总,总结一些常用的。

qq_44709970的博客 1万+

【智能车Code review】——拐点的寻找

CROSSROAD:十字拐点 ROUNDISLAND:环岛拐点 rightfindflag[i]:表示第i行的右线是否被找到,1为找到,0为没有找到 flag_find_huan_rightdown_point :找到环岛右下拐点标志 flag_find_huan_rightmiddle_point:找到环岛右中拐点标志 找拐点的思路:观察一段数据中数据点的走向趋势,并且保证这段数据是准确的。在摄像头畸变比较严重的情况下这种方法不再适用 关于函数的调用请见:https://blog.csdn.net/qq.

hanhan的博客 1万+

【AI面试】 Python 的装饰器

Python装饰器是一种高阶函数,用于在不修改原函数代码的情况下增强其功能。它通过@语法糖接收目标函数作为参数,并返回一个包含额外逻辑(如日志、缓存、权限验证等)的新函数。装饰器的核心价值在于代码复用和解耦,符合开闭原则,典型应用包括性能分析、权限控制等场景。例如,@timer_decorator可自动为函数添加耗时统计功能。本质上,@decorator等价于func = decorator(func),实际调用的是装饰器返回的包装函数。进阶技巧包括使用@functools.wraps保留原函数元信息。装饰

钱多多先森 184

Java入门系列:处理Json格式数据

本节主要讲解: 1)json格式数据处理方法 2)第三方工具包的使用方法 3)java集合数据类型 【项目任务】 编写一个程序,显示未来的天气信息。 【知识点解析】 为了方便后面代码的分析,先需要掌握几个相关的知识。 1.什么是json格式数据 从结构上看,我们所见到的所有的数据(data)最终都可以分解成三种类型: 第一种类型是标量(scalar),也就是一个单独的字符串...

weixin_30740581的博客 161

第五章 TTM 后备管理:5.6系统内存域

系统内存域由 TTM 内置资源管理器管理,通过 ttm_tt 承载页信息,依赖 ttm_pool 提供物理页。ttm_tt 管理页数组、缓存属性与状态标志,支持外部页与换出机制。初始化分 ttm_tt_init 与 ttm_sg_tt_init,生命周期包括创建、填充、释放与销毁。页池针对 write-combined、uncached 及一致性 DMA 分配的页进行缓存,提升性能并减少 TLB 刷新。分配时高阶优先、批量设置缓存属性,回收时清零后归还池中,确保高效复用。

图形/计算GPU的驱动与虚拟化技术分享园地 2569

java解析json通用_【转】一个java处理JSON格式数据的通用类

一个java处理JSON格式数据的通用类进入需要在项目中用java处理json格式的数据,因此封装了一个class,现将这个class共享出来和大家分享/***Copyright(c)linkwise2007-2009corporation.*Allrightsreserved*/packagecom.linghui.common.util;importjava.util.Arra...

weixin_39966644的博客 265

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

java json 通用类_一个java处理JSON格式数据的通用类

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入 /** * JSON 时间解析器具 * @param datePattern * @return */ public static JsonConfig configJson(String datePattern) { JsonConfig jsonConfig = new JsonConfig(); jsonConfig...

weixin_39808726的博客 144

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

java json 通用类_java处理JSON格式数据的通用类是什么呢?

进入需要在项目中用java处理json格式的数据,因此封装了一个class,现将这个class共享出来和大家分享/*** Copyright (c) linkwise 2007-2009 corporation。* All rights reserved*/package com。linghui。common。util;import java。util。ArrayList;import java。...

weixin_36434967的博客 404

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【引用】java处理JSON格式数据的通用类

进入需要在项目中用java处理json格式的数据,因此封装了一个class,现将这个class共享出来和大家分享   /**   * Copyright (c) linkwise 2007-2009 corporation.   * All rights reserved   */   package com.linghui.common.util;   import java.uti...

qingfengxia2013的专栏 147

一个java处理JSON格式数据的通用类收藏

/** *//** * Copyright (c) linkwise 2007-2009 corporation.   * All rights reserved */package com.linghui.common.util;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import jav...

乐影天海 192

java处理JSON格式数据的通用类

 /**  * Copyright (c) linkwise 2007-2009 corporation.  * All rights reserved  */  package com.linghui.common.util;  import java.util.ArrayList;  import java.util.Date;  import java.util.HashMap;  impo...

Java工程师 212

一个java处理JSON格式数据的通用类(封装了一个class)

/** *//** * Copyright (c) linkwise 2007-2009 corporation.   * All rights reserved */package com.linghui.common.util;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import j

zenith_hu的专栏 706
上一篇: Json 数据格式
下一篇: 关于Ajax中处理回传参数的几种实现
lijian820708
博客等级 码龄15年 3粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值