- 浏览: 800269 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (480)
- Spring (12)
- Hibernate (8)
- Struts2 (4)
- Java 基础-JDK-类-接口-URI-专题研究 (27)
- 线程、线程池、多线程高并发高可用、Socket通信 (15)
- Oracle数据库 (20)
- 一般-前端js-html-其它 (25)
- JYSK-互联网金融、金融科技、支付、公司、新闻等等 (8)
- Ajax-jQuery开源框架 (7)
- Json-轻量级的数据交换格式 (14)
- JavaScript (15)
- Jsp、Servlet、Servlet+JSP+JavaBean开发模式(MVC) (18)
- Html-JavaScript-前端-调用接口 (12)
- Sql Server 2005 (6)
- 正则表达式 (2)
- Java tools (18)
- 加签与验签、加密与解密 (3)
- Ajax技术核心-xmlHttpRequest(简称XHR) (6)
- xml-数据交换格式 (3)
- 信息采集 (1)
- Http - Https - HttpClient - httpCore-SSL-TLS (10)
- HtmlParser (2)
- 标签库 (1)
- SMS (2)
- jxl-导入导出 (4)
- poi-导入导出 (2)
- 定时器Timer+Quartz (6)
- 工作流引擎JBPM3.2.3 (4)
- 工作流引擎JBPM4 (0)
- 数据源-JNDI (0)
- tomcat、weblogic等应用服务器 (6)
- 工作流引擎jbpm5 (1)
- 搜索引擎Lucene (1)
- ant (1)
- 大数据-HBase (2)
- bigtable (0)
- 数据库设计 (4)
- jquery tab (0)
- mybatis (5)
- jquery ui 1.10.3 (5)
- Jboss7 (1)
- 规则引擎drools (0)
- 工作流引擎Activiti5 (0)
- 数据库-用户自定义函数 (0)
- 数据库-存储过程 (2)
- 数据库-视图 (0)
- 数据库-触发器 (0)
- 数据库-sql (2)
- highcharts-图表工具 (1)
- sql server 2008 (6)
- 诗词-工作室 (2)
- 数据割接 (1)
- GIS-地理信息系统 (2)
- RS-遥感技术 (1)
- GPS-全球定位系统 (1)
- java整合flex_RIA开发 (3)
- C#编程语言 (5)
- webservice_axis2_cxf_soap_wsdl (2)
- sql语句 (3)
- Flex_WebService_GIS (25)
- PHP编程语言 (0)
- ExtJS4.2 (1)
- Spring mvc (5)
- EasyUI1.4.2 (16)
- 日期时间工具类 (4)
- 随机数 (1)
- Arcgis api for js (0)
- Mysql数据库 (9)
- 移动互联网 java html5/flash socket netty (0)
- API接口 (1)
- AndroidStudio (0)
- Git (2)
- Maven (5)
- IDEA (0)
- 大数据-Hadoop (2)
- JPA (0)
- Spring boot (4)
- JSF (0)
- nginx_lua_module_redis (2)
- Activiti (1)
- bootstrap (1)
- AngularJS (10)
- 数据库-索引 (1)
- Linux及其连接工具SSH (4)
- java日志管理 (2)
- islider滑动控件 (1)
- jquery (1)
- 异常处理Exception (1)
- 秒杀与类秒杀系统 (1)
- 连接数据库、数据库连接池 (4)
- 数据库-临时表 (1)
- 软件设计模式-单例、多例、代理、工厂、观察者 (3)
- 集合框架 (5)
- 人工智能--Artificial intelligence、神经网络算法、机器学习 (1)
- 分布式应用 (1)
- SOA服务-Dubbo框架-Thrift框架 (2)
- Zookeeper分布式服务框架 (2)
- intellij idea (1)
- python编程语言 (0)
- 消息队列_MQ (0)
- 消息队列_RabbitMQ (2)
- 消息队列_ActiveMQ (1)
- 消息队列_Kafka (2)
- 缓存_Redis (4)
- 缓存_Memcache (0)
- 缓存_Ehcache (0)
- ivy-ivyde (1)
- google-protocol buffers (1)
- 正向代理-正向代理服务器 (1)
- 反向代理-反向代理服务器 (1)
- JVM内存模型 (0)
- Thunder框架 (1)
- NIO-非阻塞式IO (0)
- 软件测试、性能测试 (1)
- 序列化、Serializable接口、Externalizable接口 (3)
- 线程池-ExecutorService-ThreadPoolExecutor (1)
- web.xml (1)
- java开发-java工具-实用工具网站 (6)
- 医疗 (1)
- Filter-过滤器 (2)
- Unicode码-双字节字符编码 (1)
- OpenResty (1)
- 计算机网络 (1)
- eclipse_myeclipse_intellij idea (3)
- Enum (1)
- 大数据--Big Data (1)
- 云计算--Cloud computing (1)
- Elastic-Job (1)
- Redis (2)
- 文件流-IO操作 (6)
- 计算机基础知识 (1)
- Hessian-二进制RPC协议 (1)
- String类 (3)
- BigDecimal类 (1)
- java重要接口 (1)
- ReactJS (1)
- 跨域问题 (0)
- Map (1)
- 注解 (1)
- ASCII码-单字节字符编码 (1)
- 微服务、微服务架构 (2)
- RPC协议、RPC服务、RPC框架 (0)
- java反射 (1)
- java项目之classpath (1)
- 经典算法-树 (1)
- listener-监听器 (1)
- Interceptor-拦截器 (1)
- pojo javabean (2)
- 计算机科学与技术-进阶 (1)
- 代码规范与文档编写 (1)
- UML-统一建模语言 (1)
- 对接微信、支付宝 (3)
- 压力测试 (1)
- 办公软件-Excel (1)
- 办公软件-PPT (0)
- UTF8、GBK编码 (1)
- 微服务架构:Spring Cloud架构-Dubbo架构 (6)
- Nginx (1)
- 点滴业务 (1)
- form表单-json数据-转换与接口调用 (1)
- Junit单元测试 (1)
- 大数据-Spark (1)
- 大数据-Storm (1)
- 数据库事务-Spring事务 (0)
- elasticsearch (1)
- windows (1)
最新评论
【JSON数据交换格式在系统间数据调用的处理】
【jsonString转jsonObject或jsonArray】
效果图:
二、
//json转string
===========================================================
public class Demo { public static void main(String[] args) { JSONArray tempJsonArray = null; Student student = null;//学生信息 String interfaceName = "GetStudentScoreInfo"; String targetAttribute = "studentInfo"; //调用外部系统接口 JSONObject remoteReturnJsonObject = studentService.getStudentScoreInfo(interfaceName, targetAttribute); boolean successFlag = remoteReturnJsonObject.getBoolean("success");// 调用接口是否成功 if (successFlag) { tempJsonArray = parseTargetJsonObject(remoteReturnJsonObject,targetAttribute); if (null!=tempJsonArray&& tempJsonArray.size() > 0) { JSONObject tempJSONObject = (JSONObject) tempJsonArray.get(0); student = JSONObject.parseObject(tempJSONObject.toString(),Student.class);//映射为学生信息 } } } /* * 处理外部系统返回的JSON数据 */ private static JSONArray parseTargetJsonObject(JSONObject targetJsonObject, String method) { JSONArray jsonArray = null;//返回对象 JSONObject jsonObject = null; if (targetJsonObject != null) { jsonObject = targetJsonObject.getJSONObject("responseData"); } if (jsonObject != null) { jsonArray = jsonObject.getJSONArray(method); } return jsonArray; } }
【jsonString转jsonObject或jsonArray】
package com.demo; import java.lang.reflect.Field; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; public class Demo { public static void main(String[] args) throws Exception, Exception { String sourceJsonStr="{\"student\":[{\"countryName\":\"ZG\",\"departmentName\":\"Computer\",\"gradeName\":\"g3\",\"className\":\"c4\"},{\"countryName\":\"MG\",\"departmentName\":\"Electronic\",\"gradeName\":\"g2\",\"className\":\"c1\"},{\"countryName\":\"DG\",\"departmentName\":\"Math\",\"gradeName\":\"g4\",\"className\":\"c3\"}]}"; //任务一、取数据集中的某个属性值 JSONObject jsonObject=JSONObject.parseObject(sourceJsonStr); List<?> studentList=JSONArray.parseArray(jsonObject.getString("student"), Student.class); Object student=studentList.get(0); String departmentValue = org.apache.commons.beanutils.BeanUtils.getProperty(student, "departmentName"); System.out.println("系别departmentName="+departmentValue); //任务二、转换数据集 //编码映射处理前,打印studentList for (Object stu : studentList) { System.out.println("输出stu="+stu.toString()); } //字段值对应的编码映射 String jsonObjectStr="{\"countryName\":{\"ZG\":\"中国\",\"MG\":\"美国\",\"DG\":\"德国\",\"ELSG\":\"俄罗斯\"},\"departmentName\":{\"Chinese\":\"中文系\",\"Foreign\":\"外文系\",\"Computer\":\"计算机系\",\"Electronic\":\"电子工程系\",\"Physics\":\"物理系\",\"Math\":\"数学系\"},\"gradeName\":{\"g1\":\"大学一年级\",\"g2\":\"大学二年级\",\"g3\":\"大学三年级\",\"g4\":\"大学四年级\"},\"className\":{\"c1\":\"1班\",\"c2\":\"2班\",\"c3\":\"3班\",\"c4\":\"4班\"}}"; Map<String, String> targetMap = null; TypeReference<LinkedHashMap<String, String>> typeReference = new TypeReference<LinkedHashMap<String, String>>() { }; if (StringUtils.isNotBlank(jsonObjectStr)) { targetMap = JSONObject.parseObject(jsonObjectStr, typeReference);//Map<String, String> } if (null!=targetMap && targetMap.size() > 0) { for (Object stu : studentList) { for (Iterator<String> it = targetMap.keySet().iterator(); it.hasNext();) { String key = it.next();//如 department String keyJsonObjectValue = targetMap.get(key);//如 {"Electronic":"电子工程系","Foreign":"外文系","Physics":"物理系","Math":"数学系","Computer":"计算机系","Chinese":"中文系"} // System.out.println("对象名称key="+key); // System.out.println("对象值jsonObjectValue="+jsonObjectValue); String keyValue = org.apache.commons.beanutils.BeanUtils.getProperty(stu, key);//原始字符串里属性key对应的值 如:Computer LinkedHashMap<String, String> codeMap = JSONObject.parseObject(keyJsonObjectValue, typeReference);//某种属性编码映射Map LinkedHashMap<String, String> // Field field = stu.getClass().getDeclaredField(key); field.setAccessible(true);//不加该句将报错:can not access a member of class com.demo.Student with modifiers "private" field.set(stu, codeMap.get(keyValue)); } } System.out.println("编码映射处理结束。。。"); //编码映射处理后,打印studentList for (Object stu : studentList) { System.out.println("输出stu="+stu.toString()); } } } }
效果图:
二、
//json转string
function jsonToString (obj){ var THIS = this; switch(typeof(obj)){ case 'string': return '"' + obj.replace(/(["\\])/g, '\\$1') + '"'; case 'array': return '[' + obj.map(THIS.jsonToString).join(',') + ']'; case 'object': if(obj instanceof Array){ var strArr = []; var len = obj.length; for(var i=0; i<len; i++){ strArr.push(THIS.jsonToString(obj[i])); } return '[' + strArr.join(',') + ']'; }else if(obj==null){ return 'null'; }else{ var string = []; for (var property in obj) string.push(THIS.jsonToString(property) + ':' + THIS.jsonToString(obj[property])); return '{' + string.join(',') + '}'; } case 'number': return obj; case false: return obj; } }
===========================================================
String arr=new String(request.getParameter("arr").getBytes("ISO8859-1"), "UTF-8"); var arr2='<%=arr%>'; var list=eval('('+arr2+')');//用eval函数将json转化为对象 alert(list[0].fileName); alert(list[1].fileName); alert(list[2].fileName);
发表评论
-
Json--Jackson/Gson/fastJson
2013-09-24 16:52 5101、Jackson --Jackson 高性能的JSON处理 ... -
后台将map放入jsonobject中,前台从map中取值; JsonObject转map
2013-07-23 17:11 7975//后台 Map<String, Object> ... -
ajax-json-function
2013-07-02 11:20 786$.ajax({ url: " ... -
ajax json分页demo
2013-06-27 11:41 1065后台上: try { List<Us ... -
ajax动态生成table
2013-06-27 11:39 7807$(function(){ ajaxT(); }) ... -
java与json互相转换(解决日期问题),js显示json数据时出现日期类型显示[object,object]现象解决!
2013-06-26 14:33 4137JSON 即 JavaScript Object Natati ... -
js更新下拉列表select的值
2013-06-25 09:45 3046//所有版主 $(function(){ $( ... -
JSONArray用与不用的区别
2013-06-25 09:24 1059List<TopicSectionBean> Mi ... -
动态从数据库中获取数据填充Select
2013-06-24 17:52 6393//所有版块 $(function(){ getM ... -
addMissiveNo.jsp复杂js判断--checkbox--json--全选--反选--取消
2012-07-24 15:03 908[align=left][size=large]<%@ ... -
下拉列表select中使用ajax的json数据交换格式动态改变div层里面的复选框checkbox值
2012-07-24 09:48 4011align=left][size=large]function ... -
json checkbox java
2012-07-23 13:58 910<!-- <tr& ... -
下拉列表选择联动-ajax
2012-07-18 10:14 859//typeScope变化引起missiveType变化 fu ...
相关推荐
使用ObjectMapper可以轻松地将JSON数据转换为Java对象,而org.json库的JSONArray和JSONObject类则提供了处理JSON数组和对象的方法。在实际应用过程中,需要根据具体的数据结构和需求来选择合适的方法,并注意异常...
这段代码会将`jsonString`解析成一个`JSONObject`,你可以通过字段名访问其中的数据,如`jsonObject.getString("name")`来获取`name`的值。 ### 2. 将JSON字符串转换为Java对象 `JSONObject`提供了一种将JSON数据...
这个库提供了几个核心类,如JSONObject、JSONArray、JSONException和JSONString,帮助开发者方便地进行JSON的解析、创建和序列化。 **JSONObject**: JSONObject是表示JSON对象的类,它由键值对组成,键总是字符串...
一.下载json 具体到http://www.json.org/上找Java-json下载,并把其放到项目源代码中,这样就可以引用其类对象了 ...JSONObject myJsonObject = new JSONObject(jsonMessage); //获取对应的值 value1 = myJsonObject.g
在Java开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,被广泛用于前后端数据传输。`net.sf.json.JSONObject`是开源库Apache Commons Lang中的一个类,它提供了解决Java对象与JSON字符串...
JSONObject jsonObject = new JSONObject(jsonString); ``` 4. 将JSON对象转换为字符串: ```java String jsonString = jsonObject.toString(); ``` 在实际开发中,我们还需要引入`org.json`的依赖库到项目中。对于...
JSONObject jsonObject = new JSONObject(jsonString); Map<String, Object> map = new HashMap(); for (String key : jsonObject.keySet()) { map.put(key, jsonObject.get(key)); } String jsonArrayString...
以上就是关于Java中基本数据类型转换、JSONObject转Map以及JSONArray转List的详细讲解,希望对你在Java开发过程中处理不同类型数据转换有所帮助。在实际应用中,一定要结合具体场景灵活运用,并注意类型安全。
JSONObject jsonObject = new JSONObject(jsonString); String name = jsonObject.getString("name"); int age = jsonObject.getInt("age"); String city = jsonObject.getString("city"); ``` 而`Gson`库则可以...
JSONObject jsonObject = new JSONObject(jsonString); ``` 5. 遍历JSON对象:通过`keys()`方法获取所有键的迭代器,然后遍历键值对。例如: ```java Iterator<String> keys = jsonObject.keys(); while (keys...
- 从JSON字符串构造:你可以通过调用`JSONObject(String jsonString)`构造函数,传入一个有效的JSON字符串来创建`JSONObject`。 - 从Map对象构造:如果你有一个Java `Map`对象,可以使用`JSONObject(Map map)`构造...
JSONObject fromString = JSONObject.fromObject(jsonString); ``` 总结来说,`JSONObject`和`JSONArray`是JSON-Lib库中处理JSON数据的主要工具,它们帮助开发者在Java程序中方便地创建、操作和解析JSON对象。通过`...
1. 直接从JSON字符串构造:`new JSONObject(jsonString)`。 2. 使用键值对构造:`new JSONObject().put("key", "value")`。 3. 通过Map转换:`new JSONObject(map)`,其中map是键值对的集合。 读取`JSONObject`中的...
JSONObject是JSONLIB中的一个关键类,代表了JSON规范中的一个对象,它由键值对组成,键必须是字符串,而值可以是各种JSON数据类型,包括其他JSONObject或JSONArray。在Java中,JSONObject提供了许多方法来创建、修改...
JSONObject jsonObject = JSON.parseObject(jsonString); ``` **JSONArray创建方法** 1. **从List对象创建**: 类似于`JSONObject`,你可以从List对象创建`JSONArray`。 ```java List<String> list = Arrays....
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。在Java开发中,处理JSON数据时通常会用到一些库,如`com.alibaba.fastjson.JSON` 和 `...
JSONObject jsonObject = JSONObject.fromObject(jsonString); ``` 5. 同样,也可以将Java对象序列化为JSON字符串: ```java JSONObject jsonObject = new JSONObject(yourJavaObject); String jsonString = ...
JSONObject jsonObject = new JSONObject(jsonString); String name = jsonObject.getString("name"); int age = jsonObject.getInt("age"); ``` - `JSONArray`用于解析数组类型数据,如: ```java String ...
总之,要解决`JSONObject`转换过程中顺序不一致的问题,关键是理解JSON对象的无序性质,并根据需要选择合适的方法来保留顺序,如使用保留顺序的JSON库、自定义序列化或使用`JSONArray`。同时,定期更新依赖库以利用...