json的基本使用和使用Gson解析json

上传人:仙*** 文档编号:194223053 上传时间:2023-03-13 格式:DOCX 页数:10 大小:40.24KB
返回 下载 相关 举报
json的基本使用和使用Gson解析json_第1页
第1页 / 共10页
json的基本使用和使用Gson解析json_第2页
第2页 / 共10页
json的基本使用和使用Gson解析json_第3页
第3页 / 共10页
点击查看更多>>
资源描述
json的基本使用和使用Gson解析json使用json JSON是什么 JSON怎么用? = JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。 JSON的结构基于下面两点 1. 名称/值对的集合不同语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表 (hash table),键列表(keyed list)等 2. 值的有序列表 多数语言中被理解为数组(array) JSON使用: JSON以一种特定的字符串形式来表示 JavaScript 对象。如果将具有这样一种形式的字符串赋给任意一个 JavaScript 变量,那么该变量会变成一个对象引用,而这个对象就是字符串所构建出来的,好像有点拗口,我们还是用实例来说明。 这里假设我们需要创建一个 User对象,并具有以下属性 用户ID 用户名 用户 Email 您可以使用以下JSON形式来表示User对象: UserID:11, Name:Truly, Email:zhuleipro; 然后如果把这一字符串赋予一个JavaScript 变量,那么就可以直接使用对象的任一属性了。 完整代码: var User = UserID:11, Name:Truly, Email:zhuleipro; alert(User.Name); 实际使用时可能更复杂一点,比如我们为Name定义更详细的结构,使它具有FirstName和LastName: UserID:11, Name:FirstName:Truly,LastName:Zhu, Email:qq 完整代码: var User = UserID:11, Name:FirstName:Truly,LastName:Zhu, Email:zhuleipro; alert(User.Name.FirstName); 现在我们增加一个新的需求,我们某个页面需要一个用户列表,而不仅仅是一个单一的用户信息,那么这里就需要创建一个用户列表数组。 下面代码演示了使 用JSON形式定义这个用户列表: UserID:11, Name:FirstName:Truly,LastName:Zhu, Email:zhuleipro, UserID:12, Name:FirstName:Jeffrey,LastName:Richter, Email:xxx, UserID:13, Name:FirstName:Scott,LastName:Gu, Email:xxx2 完整代码: var UserList = UserID:11, Name:FirstName:Truly,LastName:Zhu, Email:zhuleipro, UserID:12, Name:FirstName:Jeffrey,LastName:Richter, Email:xxx, UserID:13, Name:FirstName:Scott,LastName:Gu, Email:xxx2 ; alert(UserList0.Name.FirstName); 事实上除了使用.引用属性外,我们还可以使用下面语句: alert(UserList0NameFirstName); 或者 alert(UserList0.NameFirstName); 现在读者应该对JSON的使用有点认识 了,归纳为以下几点: 对象是属性、值对的集合。一个对象的开始于“”,结束于“”。每一个属性名和值间用“:”提示,属性间用“,”分隔。 数组是有顺序的值的集合。一个数组开始于,结束于,值之间用,分隔。 值可以是引号里的字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。 字符串和数字的定义和C或Java基本一致。 下面用2个很好的实例做解释 =json 是什么 json怎么用 json实例 json源码= 例1 sitebao里面的 ajax 获得时间格式,在前台动态的添加到下拉框的选项里 不需要自己定义json的数组格式 public String getTimeStyle TimeStyleDAO timeStyleDAO = TimeStyleDAO.getInstance; timeStyles = timeStyleDAO.getAllStringStyle; System.out.println(timeStyles.size); JSONArray obj=JSONArray.fromObject(timeStyles); getResponse.setContentType(text;charset=UTF-8); try getResponse.getWriter.write(obj.toString); catch (IOException e) / TODO Auto-generated catch block e.printStackTrace; return NONE; =页面,获得后台传过来的json对象,遍历json数组,动态添加= $.ajax( url:/sitebao62p/page_getTimeStyle.do?ajax=true, cache:false, data:data, dataType:text, type:POST, success:function(data) closeDIV(addModel); openDIV(addProductModel); data=eval_r(+data+); $.each(data,function(index,item) temp=+item.stringStyle+; $(#producttimeStyleId).append(temp); ); ); 例2=需要自己组装json数组格式。= try StringBuffer sb=new StringBuffer(); int length=OneNesType.size; for (int i = 0; i 0) sb=new StringBuffer(sb.substring(0,sb.lastIndexOf(,); sb.append(); System.out.println(sb.toString); getResponse.setContentType(text;charset=UTF-8); getResponse.getWriter.write(sb.toString); return null; catch(Exception e) e.printStackTrace; return NONE; =json 是什么 json怎么用 json实例 json源码= 例1 sitebao里面的 ajax 获得时间格式,在前台动态的添加到下拉框的选项里 不需要自己定义json的数组格式= public String getTimeStyle TimeStyleDAO timeStyleDAO = TimeStyleDAO.getInstance; timeStyles = timeStyleDAO.getAllStringStyle; System.out.println(timeStyles.size); JSONArray obj=JSONArray.fromObject(timeStyles); getResponse.setContentType(text;charset=UTF-8); try getResponse.getWriter.write(obj.toString); catch (IOException e) e.printStackTrace; return NONE; =页面,获得后台传过来的json对象,便利json数组,动态添加= $.ajax( url:/sitebao62p/page_getTimeStyle.do?ajax=true, cache:false, data:data, dataType:text, type:POST, success:function(data) closeDIV(addModel); openDIV(addProductModel); data=eval_r(+data+); $.each(data,function(index,item) temp=+item.stringStyle+; $(#producttimeStyleId).append(temp); ); ); 例2=需要自己组装json数组格式。= try StringBuffer sb=new StringBuffer(); int length=OneNesType.size; for (int i = 0; i 0) sb=new StringBuffer(sb.substring(0,sb.lastIndexOf(,); sb.append(); System.out.println(sb.toString); getResponse.setContentType(text;charset=UTF-8); getResponse.getWriter.write(sb.toString); return null; catch(Exception e) e.printStackTrace; return NONE; =json 是什么 json怎么用 json实例 json源码= 对于单独的一个json串 public void getCategoryAjax(int catId,HttpServletResponse response) Category c = new Category; c = myCategoryService.getCategory(catId); int uid = 1; /如果我什么都不需要返回,则下面怎么写?比如删除的时候 /获得我的目录 List list = myCategoryService.myCategoryList(uid); StringBuffer sb=new StringBuffer; sb.append(catId:+c.getCatId+,name:+c.getName+,description:+c.getDescription+); /sb.append(); writerResponseRes(response, sb.toString); js中的体现 function update_category(catId) var catId = catId; var name = ; var description = ; $.ajax( url:/iknowing/getCategoryAjax.html, type:POST, dataType:text, data:catId=+catId, success:function(data) data=eval_r(+data+); name = data.name; description = data.description; $(#updateName).attr(value,name); if(description!=undefined) $(#updateDescription).attr(value,description); $(#updateCatId).attr(value,catId); ); $(#updateDiv).dialog(open); 小结: 本文通过一个实例演示,初步了解了 JSON 的强大用途。可以归结如下: JSON 提供了一种优秀的面向对象的方法,以便将元数据缓存到客户机上。 JSON 帮助分离了验证数据和逻辑。 JSON 帮助为 Web 应用程序提供了 Ajax 的本质。 下面提供Google 解析json的插件Gson的使用方法,和Java其他插件一样要去下载jar包,然后倒入工程,下面具体说说怎么用吧! Gson简要使用笔记 发现了google的gson,因为之前对于protocolbuf有一些了解,带着一些好奇心,我开始使用了gson。 经过比较,gson和其他现有java json类库最大的不同时gson需要序列化得实体类不需要使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需要序列化的字段。 下面是一个简单的例子: Person实体 实体很简单,两个字段,当然实体中的字段也可以是List或者Set类型的。 生成Json字符串 上面的代码重点是Gson对象,它提供了toJason方法将对象转换成Json字符串,上面代码的str对象值为: name:name0,age:0,name:name1,age:5,name:name2,age:10,name:name3,age:15,name:name4,age:20,name:name5,age:25,name:name6,age:30,name:name7,age:35,name:name8,age:40,name:name9,age:45 很标准的json数据,很简单吧,呵呵。 下面来看看gson的反序列化,Gson提供了fromJson方法来实现从Json相关对象到java实体的方法。 在日常应用中,我们一般都会碰到两种情况,转成单一实体对象和转换成对象列表或者其他结构。 先来看第一种: 比如json字符串为:name:name0,age:0 代码: Person person = gson.fromJson(str, Person.class); 提供两个参数,分别是json字符串以及需要转换对象的类型。 第二种,转换成列表类型: 代码: List ps = gson.fromJson(str, new TypeTokenList.getType); for(int i = 0; i ps.size ; i+) Person p = ps.get(i); System.out.println(p.toString); 可以看到上面的代码使用了TypeToken,它是gson提供的数据类型转换器,可以支持各种数据集合类型转换。 Gson的基本使用就是这么多,至于annotation方面可以参考gson的官方文档,希望能对初学java和gson的同学有所帮助。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!