【JSON】JSON字符串的操作(不断积累中)
一、JS遍历JSON串
示例01
目标:返回的JSON串中,一个Key对应的Value是一个数组(若在Java程序中,是一个List)。
现在要求获取每个数组中的第一个对象元素中的name属性的值。
测试代码:
//目标:获取每个列表中,第一个对象元素的name属性值.
var result = {
'A': [{
'name': '111',
'gender': '111male',
'place': '河南'
},
{
'name': '222',
'gender': '222female',
'place': '北京'
}], 'B': [{
'name': '333',
'gender': '333male',
'place': '河北'
},
{
'name': '444',
'gender': '444male',
'place': '湖南'
},
{
'name': '555',
'gender': '555male',
'place': '广西'
}]
}; for( var key in result){
//方式一:
//var oneValue = result[key];
//var name = oneValue[0].name;
//console.info(name); //方式二:
var name = result[key][0].name;
console.info(name);
};
运行结果:
111
333
二、Java对象与JSON串的相互转化
(一) 将Java对象转化成JSON字符
工具:fastjson
1、需求01:将List<Map<String, Object>>对象转化成JSON字符串
【代码示例】
List<Map> rtnMapList = new ArrayList<Map>()
String cSrc = JSONArray.toJSON(paramMapList).toString();
LogUtil.getLogger().info("JSONArray.toJSON()方法,将Java对象转化成JSON串之后的结果:"+cSrc);
【运行结果】
===========原List<Map>结构数据:==========
[{acDate=2016-06-15,targetTableName=t_acc_subject_provision},{acDate=2016-06-16,targetTableName=t_acc_subject_provision}]
===========JSONArray.toJSON()方法之后的结果:==========
[{"acDate":"2016-06-15","targetTableName":"t_acc_subject_provision"},{"acDate":"2016-06-16","targetTableName":"t_acc_subject_provision"}]
(二) 将JSON字符串转化成Java对象 [fastjson]
工具:fastjson
1、需求01:将JSON字符串转化为List<Map>对象。
【代码示例】
@RequestMapping( value = "testFacade")
public void testFacade(HttpServletRequest request, HttpServletResponse response){
String paramStr = "";
try {
InputStream inStream = request.getInputStream();
//(1)解密参数
paramStr = CheckMsg.check(inStream);
//(2)将参数从JSON格式转化成List<Map>类型。
List<Map> paramMapList = JSONArray.parseArray(paramStr, Map.class); //2.返回空Response,防止响应阻塞。
HttpUtil.httpResponse("", response);
} catch (Exception e) {
e.printStackTrace();
}
}
【运行结果】
===========原JSON字符串:==========
[{"acDate":"2016-06-15","targetTableName":"t_acc_subject_provision"},{"acDate":"2016-06-16","targetTableName":"t_acc_subject_provision"}]
===========将JSON转化成List<Map>结构后的数据:==========
[{acDate=2016-06-15,targetTableName=t_acc_subject_provision},
{acDate=2016-06-16,targetTableName=t_acc_subject_provision}]
2、需求02:将JSON字符串转化为List<Map<String, Object>>对象。
【代码示例】
1 @RequestMapping( value = "testFacade")
2 public void testFacade(HttpServletRequest request, HttpServletResponse response){
3 String paramStr = "";
4 try {
5 InputStream inStream = request.getInputStream();
6 //(1)解密参数
7 paramStr = CheckMsg.check(inStream);
8 //(2)将参数从JSON格式转化成List<Map>类型。
9 List<Map<String, Object>> paramMapList = JSON.parseObject(rtnJsonStr, new TypeReference<List<Map<String, Object>>>(){});
10
11 //2.返回空Response,防止响应阻塞。
12 HttpUtil.httpResponse("", response);
13 } catch (Exception e) {
14 e.printStackTrace();
15 }
16 }
【运行结果】
===========原JSON字符串:==========
1 [{"acDate":"2016-06-15","targetTableName":"t_acc_subject_provision"},{"acDate":"2016-06-16","targetTableName":"t_acc_subject_provision"}]
===========将JSON转化成List<Map>结构后的数据:==========
1 [{acDate=2016-06-15,targetTableName=t_acc_subject_provision},
2 {acDate=2016-06-16,targetTableName=t_acc_subject_provision}]
【说明】
JSONArray类和JSON类是第三方组件com.alibaba.fastjson中的类,它们的类全路径名分别为:
com.alibaba.fastjson.JSONArray,com.alibaba.fastjson.JSON
【参考资料】
JSONArray的应用:http://www.cnblogs.com/henryxu/archive/2013/03/10/2952738.html
Java解析JSON数据:http://www.cnblogs.com/henryxu/archive/2013/03/10/2952741.html
JSON官网:http://www.json.org/
【JSON】JSON字符串的操作(不断积累中)的更多相关文章
- php大力力 [024节]PHP中的字符串连接操作(2015-08-27)
2015-08-27 php大力力024.PHP中的字符串连接操作 PHP中的字符串连接操作 阅读:次 时间:2012-03-25 PHP字符串的连接的简单实例 时间:2013-12-30 很多 ...
- LoadRunner中字符串的操作
LoadRunner中字符串的操作 LoadRunner中常用的字符串操作函数有: strcpy(destination_string, source_string); ...
- json和字符串/数组/集合的互相转换の神操作总结
一:前端字符串转JSON的4种方式 1,eval方式解析,恐怕这是最早的解析方式了. function strToJson(str){ var json = eval('(' + str + ')') ...
- Python中json的简单读写操作
Python中json的简单读写操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的 ...
- java中json和字符串互转及日期转换 练习
一:以下是用到的jar名称: commons-beanutils-1.6.jar commons-collections-3.2.1.jar commons-lang-2.6.jar commons- ...
- JSON(五)——同步请求中使用JSON格式字符串进行交互(不太常见的用法)
在同步请求中使用JSON格式进行数据交互的场景并不多,同步请求是浏览器直接与服务器进行数据交互的大多是用jsp的标签jstl和el表达式对请求中的数据进行数据的渲染.我也是在一次开发中要从其它服务器提 ...
- JSON(二)——JavaScript中js对象与JSON格式字符串的相互转换
首先我们来看一下js中JSON格式的字符串 var JSONStr1 = "{\"name\" : \"张三\"}"; 注意以下的写法不是j ...
- json数据格式字符串在java中的转移
说明:项目中遇到请求的json数据字符串,打印出来没有问题,但是想加入到代码中,就需要进行转移 原数据为(用src代替)(没有写完): {"adjust_fee":"0. ...
- 在论坛中出现的比较难的sql问题:36(动态行转列 解析json格式字符串)
原文:在论坛中出现的比较难的sql问题:36(动态行转列 解析json格式字符串) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.
- 前台页面中json和字符串相互转化
比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象: var a={"name":"tom","sex":"男&quo ...
随机推荐
- 安装cloudera
1. 查看selinux状态 $ /usr/sbin/getenforce Enforcing $ /usr/sbin/sestatus SELinux status: enabled SELinux ...
- ORG 07C00H的意思
简单说来,该指令用来修正该指令以后出现的(变量/标志的)内存地址,也就是说如果有ORG 0x12345h,那么在该指令以后的变量的地址将被修正为0x12345+old_addr.对于DOS中的COM文 ...
- [ionic开源项目教程] - 第13讲 Service层优化,提取公用Service,以及生活和农业两大模块的实现
关注微信订阅号:TongeBlog,可查看[ionic开源项目]全套教程. 这一讲主要实现生活和农业两大模块的实现,在这个过程中,对service层提取出一个公用的BaseService. 这一讲分为 ...
- HDU 2059 龟兔赛跑
受上一道题影响,我本来想着开一个二维数组来表示充电和不充电的状态. 可这样就有一个问题,如果没有充电,那么在下一个阶段就有剩余的电量. 这样问题貌似就不可解了,难道是因为不满足动态规划的无后效性这一条 ...
- 4630 no pain no game 树状数组
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4630 题意:给你N个数,然后给你M个询问,每个询问包含一个l 一个r,问你lr 这个区间中任意两个数最 ...
- java动态代理Proxy
package com.gz_06; public interface StudentDao { public void login(); public void regist(); } packag ...
- UVA 11374 Halum (差分约束系统,最短路)
题意:给定一个带权有向图,每次你可以选择一个结点v 和整数d ,把所有以v为终点的边权值减少d,把所有以v为起点的边权值增加d,最后要让所有的边权值为正,且尽量大.若无解,输出结果.若可无限大,输出结 ...
- Task和BackTask
一.总结性知识点: 1.Android应用运行时会创建任务Task,用于存放主窗口 2.每一个任务包含一个堆栈数据结构,用于保存当前应用已创建的窗口对象,这个堆栈即回退栈BackSta ...
- AJax学习一
1.Ajax的准备工作,就是要先准备好服务器环境. 这边可以有好几种方式,例如服务器工具: http://www.php100.com/html/plugin/ser/2013/0905/91.htm ...
- 嵌入式 H264中的SPS、PPS提取与作用
使用RTP传输H264的时候,需要用到sdp协议描述,其中有两项:Sequence Parameter Sets (SPS) 和Picture Parameter Set (PPS)需要用到,那么这两 ...