如何处理这组Json

============问题描述============

[{"id":2,"grade":"2016级","class:"1班"},{"id":3,"grade":"2016级","class":"2班"},{"id":,4,"grade":"2016级","class":"3班"},{"id":5,"grade":"2015级","class":"1班"}]

已经成功解析,但里面的grade键值对很多值是大量重复的。用listview或Expandablelistview 会出项group项重复;本意效果是

但实际效果是

============解决方案1============

可以重新设计json格式为:

[

	{

		"grade": "2015级",

		"classes": [

			{"id": 5, "class": "1班"}

		]

	},

	{

		"grade": "2016级",

		"classes": [

			{"id": 2, "class": "1班"},

			{"id": 3, "class": "2班"},

			{"id": 4, "class": "3班"}

		]

	}

]

或者把数据对象组织为:

class Class {

	int id;

	String name;

}

class Grade {

	String name;

	ArrayList<Class> classes;

}

ArrayList<Grade> grades = new ArrayList<Grade>();

时间: 2024-12-23 20:41:16

如何处理这组Json的相关文章

从表格获取数据组JSON格式提交

最近做的一个任务,一个带input框的表格,里面可以填充数据,点保存的时候需要从表格里面提取每个input的value值. dom结构如下 <!-- 表格信息--> <div id="table-info" class="tab-pane"> <div class="stackDiv" style="overflow: hidden; zoom: 1;"> <div class=&qu

wx.request得到的正文字段如何处理成符合JSON格式的

thestr=replace(str,chr(13)&chr(10),"") '把换行过滤thestr=replace(thestr," ","") '把空格过滤thestr=replace(thestr,"/include/editor/","https://图片存放服务器/include/editor/") '把正文中的图片路径处理成绝对路径以便正常显示thestr=FormatStr(thes

17、iOS面试题&#183;自整理&#183;Two

多线程的底层实现 1.首先搞清楚是什么线程.什么是多线程2.Mach是第一个以多线程方式处理任务的系统,因此多线程的底层实现机制是基于Mach的线程3.开发中很少用Mach级的线程,因为Mach级的线程没有提供多线程的基本特征,线程之间是独立的4.开发中实现多线程的方案 * C语言的POSIX接口:#include <pthread.h> * OC的NSThread * C语言的GCD接口(性能最好,代码更精简) * OC的NSOperation和NSOperationQueue(基于GCD)

extjs4.1.1 formPanel 布局

我们先来看看前台JS: Ext.onReady(function() { Ext.QuickTips.init();// 浮动信息提示 Ext.form.Field.prototype.msgTarget = 'side';// 设置控件的错误信息显示位置,主要可选的位置有:qtip,title,under,side,[elementId] Ext.BLANK_IMAGE_URL = 'resources/images/default/s.gif';// 替换图片文件地址为本地 var simp

菜鸟前端程序员小知识点锦集二

1. 数组排序      Array---sort()方法:     1> 用sort方法对字母排序:         var arr=new Array(6)         arr[0]=a.. arr[1]=...         arr.sort();         排出来按a-z的顺序排     2> 用sort方法对数字排序:         arr.sort(sortNumber);从小到大对数字排序.     3> 如果按照其他标准进行排序,需提供函数,        

Linux Repositories

配置文件 /etc/yum.conf 该文件包含一个强制的部分[main],这里定义了关于repositories的全局配置 另外还有一个可选的[repositories]部分,这里定义指定的repository的配置,不过不建议在这里存放,而是统一放到/etc/repos.d目录中以.repo结尾的指定repository配置文件中 在[main]中定义的配置可以覆盖[repositories]的配置 [main]中可以配置如下值: 1. assumeyes=value 意义:yum执行关键操

POST &amp;amp; GET &amp;amp; Ajax 全解

GET&POST&Ajax 全解 一.POST和GET的差别 GET:GET方法提交数据不安全,数据置于请求行.客户段地址栏可见:GET方法提交的数据限制大小在255个字符之内.參数直接跟在URL后面清晰可见,该http请求的body部分也是空的.仅仅有head部分显示了一个http的基本信息. POST:POST方法提交的数据置于消息主体内,client不可见,POST提交的数据大小没有限制. POST方式发送的http请求,參数不是跟在URL后面的,而是存放在http请求的body部分

iOS 面试题 2

1.         描述应用程序的启动顺序. 1.程序入口main函数创建UIApplication实例和UIApplication代理实例 2.在UIApplication代理实例中重写启动方法,设置第一ViewController 3.在第一ViewController中添加控件,实现对应的程序界面. 为什么很多内置类如UITableViewControl的delegate属性都是assign而不是retain?请举例说明. 防止循环引用, Student * str=[]; Teache

json_encode与json_decode的区别与用法

//json_encode顾名思义json编码,就是将数组或对象,编码成json字符串的函数 $arr['a'] = 1; $arr['b'] = 2; var_dump(json_encode($arr)); class obj { } $obj = new obj; $obj->a = 1; $obj->b = 2; var_dump(json_encode($obj)); //这两条打印结果是一样的 //string '{"a":1,"b":2}'