一、JS遍历JSON串

示例01

目标:返回的JSON串中,一个Key对应的Value是一个数组(若在Java程序中,是一个List)。

现在要求获取每个数组中的第一个对象元素中的name属性的值。

测试代码:

  1. //目标:获取每个列表中,第一个对象元素的name属性值.
  2. var result = {
  3. 'A': [{
  4. 'name': '111',
  5. 'gender': '111male',
  6. 'place': '河南'
  7. },
  8. {
  9. 'name': '222',
  10. 'gender': '222female',
  11. 'place': '北京'
  12. }],
  13.  
  14. 'B': [{
  15. 'name': '333',
  16. 'gender': '333male',
  17. 'place': '河北'
  18. },
  19. {
  20. 'name': '444',
  21. 'gender': '444male',
  22. 'place': '湖南'
  23. },
  24. {
  25. 'name': '555',
  26. 'gender': '555male',
  27. 'place': '广西'
  28. }]
  29. };
  30.  
  31. for( var key in result){
  32. //方式一:
  33. //var oneValue = result[key];
  34. //var name = oneValue[0].name;
  35. //console.info(name);
  36.  
  37. //方式二:
  38. var name = result[key][0].name;
  39. console.info(name);
  40. };

运行结果:

111

333

二、Java对象与JSON串的相互转化

(一) 将Java对象转化成JSON字符

工具:fastjson

1、需求01:将List<Map<String, Object>>对象转化成JSON字符串

【代码示例】

  1. List<Map> rtnMapList = new ArrayList<Map>()
  2. String cSrc = JSONArray.toJSON(paramMapList).toString();
  3. LogUtil.getLogger().info("JSONArray.toJSON()方法,将Java对象转化成JSON串之后的结果:"+cSrc);

【运行结果】

===========原List<Map>结构数据:==========

  1. [{acDate=2016-06-15,targetTableName=t_acc_subject_provision},{acDate=2016-06-16,targetTableName=t_acc_subject_provision}]

===========JSONArray.toJSON()方法之后的结果:==========

  1. [{"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>对象。

【代码示例】

  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> paramMapList = JSONArray.parseArray(paramStr, Map.class);
  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}]

2、需求02:将JSON字符串转化为List<Map<String, Object>>对象。

【代码示例】

  1. 1 @RequestMapping( value = "testFacade")
  2. 2 public void testFacade(HttpServletRequest request, HttpServletResponse response){
  3. 3 String paramStr = "";
  4. 4 try {
  5. 5 InputStream inStream = request.getInputStream();
  6. 6 //(1)解密参数
  7. 7 paramStr = CheckMsg.check(inStream);
  8. 8 //(2)将参数从JSON格式转化成List<Map>类型。
  9. 9 List<Map<String, Object>> paramMapList = JSON.parseObject(rtnJsonStr, new TypeReference<List<Map<String, Object>>>(){});
  10. 10
  11. 11 //2.返回空Response,防止响应阻塞。
  12. 12 HttpUtil.httpResponse("", response);
  13. 13 } catch (Exception e) {
  14. 14 e.printStackTrace();
  15. 15 }
  16. 16 }

【运行结果】

===========原JSON字符串:==========

  1. 1 [{"acDate":"2016-06-15","targetTableName":"t_acc_subject_provision"},{"acDate":"2016-06-16","targetTableName":"t_acc_subject_provision"}]

===========将JSON转化成List<Map>结构后的数据:==========

  1. 1 [{acDate=2016-06-15,targetTableName=t_acc_subject_provision},
  2. 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字符串的操作(不断积累中)的更多相关文章

  1. php大力力 [024节]PHP中的字符串连接操作(2015-08-27)

    2015-08-27 php大力力024.PHP中的字符串连接操作 PHP中的字符串连接操作  阅读:次   时间:2012-03-25 PHP字符串的连接的简单实例 时间:2013-12-30 很多 ...

  2. LoadRunner中字符串的操作

    LoadRunner中字符串的操作 LoadRunner中常用的字符串操作函数有:                strcpy(destination_string, source_string); ...

  3. json和字符串/数组/集合的互相转换の神操作总结

    一:前端字符串转JSON的4种方式 1,eval方式解析,恐怕这是最早的解析方式了. function strToJson(str){ var json = eval('(' + str + ')') ...

  4. Python中json的简单读写操作

    Python中json的简单读写操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的 ...

  5. java中json和字符串互转及日期转换 练习

    一:以下是用到的jar名称: commons-beanutils-1.6.jar commons-collections-3.2.1.jar commons-lang-2.6.jar commons- ...

  6. JSON(五)——同步请求中使用JSON格式字符串进行交互(不太常见的用法)

    在同步请求中使用JSON格式进行数据交互的场景并不多,同步请求是浏览器直接与服务器进行数据交互的大多是用jsp的标签jstl和el表达式对请求中的数据进行数据的渲染.我也是在一次开发中要从其它服务器提 ...

  7. JSON(二)——JavaScript中js对象与JSON格式字符串的相互转换

    首先我们来看一下js中JSON格式的字符串 var JSONStr1 = "{\"name\" : \"张三\"}"; 注意以下的写法不是j ...

  8. json数据格式字符串在java中的转移

    说明:项目中遇到请求的json数据字符串,打印出来没有问题,但是想加入到代码中,就需要进行转移 原数据为(用src代替)(没有写完): {"adjust_fee":"0. ...

  9. 在论坛中出现的比较难的sql问题:36(动态行转列 解析json格式字符串)

    原文:在论坛中出现的比较难的sql问题:36(动态行转列 解析json格式字符串) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.

  10. 前台页面中json和字符串相互转化

    比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象: var a={"name":"tom","sex":"男&quo ...

随机推荐

  1. C# 正则 获取 Img Src路径

    string str = "<form id=\"form1\" runat=\"server\"><div><p> ...

  2. sublime exclude folder?

    在sublime的项目中,其配置文件实际上是一个json文件,如果希望将某些文件夹或者文件排除在项目有效文件外,有以下方法: 在folder_exclude_patterns中输入对应的文件夹或者正则 ...

  3. Machine Learning for hackers读书笔记(二)数据分析

    #均值:总和/长度 mean() #中位数:将数列排序,若个数为奇数,取排好序数列中间的值.若个数为偶数,取排好序数列中间两个数的平均值 median() #R语言中没有众数函数 #分位数 quant ...

  4. LA 3902 Network

    人生第一道图论题啊,有木有 题意: 有一个树状网络,有一个原始服务器s,它的服务范围是k 问至少再放多少台服务范围是k的服务器才能使网络中的每个节点都被覆盖掉 解法: 我们以原始服务器为根将其转化成一 ...

  5. You must SET PASSWORD before executing this statement解决

    [转载] MySql5.6操作时报错:You must SET PASSWORD before executing this statement解决 转载: http://blog.csdn.net/ ...

  6. BZOJ 3653 谈笑风生

    ORZ blutrex...... 主席树. #include<iostream> #include<cstdio> #include<cstring> #incl ...

  7. Linux diff patch

    /***************************************************************************** * Linux diff patch * ...

  8. HDU 5316 Magician (线段树,单值修改,微变形)

    题意:给一个初始序列A[1,n],第j个数字代表精灵j的power值,有两种操作:(1)查询区间[L,R] (2)修改某个精灵的power值. 但,查询的是区间[L,R]中一个美丽子序列sub[l,r ...

  9. Hbase常用命令

    转:http://lib.csdn.net/article/hadoop/33499

  10. Android Volley源码分析

    今天来顺手分析一下谷歌的volley http通信框架.首先从github上 下载volley的源码, 然后新建你自己的工程以后 选择import module 然后选择volley. 最后还需要更改 ...