json:

1 [{"iTagID":9,"cTag":"Liuxx测试-标签-1","cUnit":"TT","values":[{"serial_number":1,"cDate":"2012-11-05","fValue":30},{"serial_number":2,"cDate":"2013-01-10","fValue":400},{"serial_number":3,"cDate":"2013-01-13","fValue":200},{"serial_number":4,"cDate":"2013-01-16","fValue":200},{"serial_number":5,"cDate":"2013-01-16","fValue":290},{"serial_number":6,"cDate":"2013-01-16","fValue":350},{"serial_number":7,"cDate":"2013-01-16","fValue":310},{"serial_number":8,"cDate":"2013-01-17","fValue":200},{"serial_number":9,"cDate":"2013-01-17","fValue":15},{"serial_number":10,"cDate":"2013-01-17","fValue":20},{"serial_number":11,"cDate":"2013-05-17","fValue":30}]},{"iTagID":10,"cTag":"Liuxx测试-标签-2","cUnit":"VAR","values":[{"serial_number":1,"cDate":"2012-11-05","fValue":60},{"serial_number":2,"cDate":"2013-01-10","fValue":100},{"serial_number":3,"cDate":"2013-01-13","fValue":50},{"serial_number":4,"cDate":"2013-01-16","fValue":100},{"serial_number":5,"cDate":"2013-01-16","fValue":109},{"serial_number":6,"cDate":"2013-01-16","fValue":200},{"serial_number":7,"cDate":"2013-01-16","fValue":300},{"serial_number":8,"cDate":"2013-01-17","fValue":50},{"serial_number":9,"cDate":"2013-01-17","fValue":16},{"serial_number":10,"cDate":"2013-01-17","fValue":30},{"serial_number":11,"cDate":"2013-05-17","fValue":60}]},{"iTagID":11,"cTag":"Liuxx测试-标签-3","cUnit":"VARh","values":[{"serial_number":1,"cDate":"2013-01-16","fValue":1630}]},{"iTagID":12,"cTag":"Liuxx测试-标签-4","cUnit":"W","values":[{"serial_number":1,"cDate":"2013-01-09","fValue":3},{"serial_number":2,"cDate":"2013-01-13","fValue":5},{"serial_number":3,"cDate":"2013-01-14","fValue":6},{"serial_number":4,"cDate":"2013-01-16","fValue":9}]}]

 1 NSMutableArray *tempSection = [NSMutableArray arrayWithCapacity:10];
 2
 3              NSMutableArray *headArray = nil;
 4              for (id ele in json)
 5              {
 6                  NSDictionary *dict = @{
 7                  @"tag" : [NSString stringWithFormat:@"%@", [ele objectForKey:@"cTag"]],
 8                  @"unit": [NSString stringWithFormat:@"%@", [ele objectForKey:@"cUnit"]]
 9                  };
10                  if(headArray == nil)
11                  {
12                      headArray = [NSMutableArray arrayWithObject:dict];
13                  }
14                  else
15                  {
16                      [headArray addObject:dict];
17                  }
18              }
19              int iColumnCount =0;
20              for(int i=0; i<[json count]; i++)
21              {
22                  iColumnCount = MAX(iColumnCount, [[json[i] objectForKey:@"values"] count]);
23                  for(int j=0;j<iColumnCount;j++)
24                  {
25                      if([tempSection count] == j) //在数据行数组中再加一行
26                      {
27                          NSMutableArray *rowArray = [NSMutableArray arrayWithCapacity:10];
28                          [tempSection addObject:rowArray];
29                      }
30                      if(j >= [[json[i] objectForKey:@"values"] count]) //放空占位符
31                      {
32                          [tempSection[j] addObject:[NSNull null]];
33                          continue;
34                      }
35                      id colValue1 = [[json[i] objectForKey:@"values"][j] objectForKey:@"serial_number"];
36                      id colValue2 = [[json[i] objectForKey:@"values"][j] objectForKey:@"cDate"] == nil ? @"" : [[json[i] objectForKey:@"values"][j] objectForKey:@"cDate"] ;
37                      id colValue3 = [[json[i] objectForKey:@"values"][j] objectForKey:@"fValue"];
38
39                      [tempSection[j] addObject:@{@"serial_number":colValue1, @"date":colValue2, @"value":colValue3}];
40                  }
41              }
42
43              [tempSection insertObject:headArray atIndex:0];

效果图:

JSON 列转行的一小段无用代码相关推荐

  1. 一小段jQuery代码的分析与优化

    今天刚回家,QQ群里就看到有人求助优化一段jQuery代码,简单看了一下,发现如果对jQuery这东西只停留在用的层面,而不知其具体实现的话,真的很容易用出问题来.这也是为什么近期我一直不怎么推崇用j ...

  2. 一小段Python代码,破解加密zip文件的密码

    今天的文章来自 盏茶作酒 同学.他在老电脑中发现了一个加密的 zip 文件,于是用 Python 破解了文件密码.在破解的过程中出现了内存爆炸的问题,通过阅读 Python 源代码找到了解决方案. 下 ...

  3. java程序重新执行一遍_我怎么在jsp里只执行其中一小段java代码,而不把整个页面都重新加载一遍?...

    嗯,比如说第一个里是省份,第二个是市,根据省份的选择变化来变化市名,从数据库里选,怎么实现? 用xmlhttp来实现 查了一下还蛮难上手的,唯一的方法? 用iframe,我刚做完类似的项目,挺管用 请 ...

  4. oracle sql列转行_Oracle数据库中列转行的两种方法

    1.创建tb_student表 create table tb_student( id number(4) , name varchar2(20), course varchar2(20), scor ...

  5. mysql 分组 列转行,mysql列转行以及年月分组_MySQL

    bitsCN.com mysql列转行以及年月分组 Java代码 SELECT count(DISTINCT(a.rect_id)) zcount, a.job_dept, DATE_FORMAT(s ...

  6. Java中有关日期的操作,昨天晚上赴约,搞到12点多才回来,今天写这一小段代码都花了一段漫长的时间,哎。。...

    Java中有关日期的操作,昨天晚上赴约,搞到12点多才回来,今天写这一小段代码都花了一段漫长的时间,哎.. 代码奉上: /** * * @param date * @return which mont ...

  7. oracle游标列转行,Oracle行转列和列转行

    一.行转列 1.1.初始测试数据 表结构:TEST_TB_GRADE Sql代码: 1    create table TEST_TB_GRADE 2    ( 3      ID        NU ...

  8. oracle列转行求和,Oracle行转列和列转行

    一.行转列 1.1.初始测试数据 表结构:TEST_TB_GRADE Sql代码: 1    create table TEST_TB_GRADE 2    ( 3      ID        NU ...

  9. 将Excel文件导入到MySQL数据库中并实现列转行操作

    在处理数据的时候,因为数据源在Excel文件中,本人Excel文件的处理方法不是太会,加上朋友说在Excel中处理这样的数据很麻烦,我就想着干脆导入到数据库中通过代码解决这个问题,感兴趣的可以找我拿数 ...

最新文章

  1. 两个ListBox中的项互相移动及上下移动
  2. 一篇文章带你了解APP PUSH推送机制
  3. 【机器学习】机器学习中必知必会的 8 种降维技术,最后一款超硬核!
  4. 右下角android sdk content loader 加载很慢的解决方法
  5. 后台系统可扩展性学习笔记(十三)缓存
  6. Linux下的实模式和保护模式
  7. Android应用开发提高篇(4)-----Socket编程(多线程、双向通信)
  8. mpython 编译_使用-m选项或n执行Python代码
  9. 元宇宙是个啥?送4本科普好书
  10. MyEclipse 修改 默认的 工作空间(转)
  11. 修改配置nginx,限制无良爬虫频率
  12. FPGA 串口接收不准确,有误码
  13. 关闭Windows指定端口
  14. 一款快速开单 订单发货收货的在线订货管理软件
  15. CVPR 2020 | 旷视研究院提出优化领域自适应物体检测性能的类别正则化框架
  16. echarts 自定义鼠标划过的显示 与 自定义legend
  17. (websocket)协议中Ping Pong,Socket通讯ping pong(长连接),心跳包
  18. 【大数据】Hadoop 体系(五)
  19. 微信浏览器唤醒App
  20. 基于JAVA银创科技有限公司人事信息系统计算机毕业设计源码+系统+数据库+lw文档+部署

热门文章

  1. java 中常用方法_java_中常用的方法总结
  2. es分布式结构原理是什么?
  3. java检索字符串并提取_eclipse 项目中搜索资源(类方法,文件名,文件中的字符串)...
  4. 【Zookeeper进阶】大白话解释Zookeeper的选举机制
  5. Intellij IDEA 2020.1 的Plugins 搜索不了插件,连接超时
  6. python数据类型变量_python的数据类型与变量
  7. Python爬虫项目--爬取某宝男装信息 附带源码
  8. matlab sperman相关,相关系数
  9. java 给控件添加边框_Android UI 利用Drawable Shape给控件加边框/立体效果
  10. postman python request_postman自动化实战总结