欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

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

    • 资源ID:3159820       资源大小:40.24KB        全文页数:10页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    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 变量,那么就可以直接使用对象的任一属性了。 完整代码: <script> var User = "UserID":11, "Name":"Truly", "Email":"zhuleipro" alert(User.Name); </script> 实际使用时可能更复杂一点,比如我们为Name定义更详细的结构,使它具有FirstName和LastName: "UserID":11, "Name":"FirstName":"Truly","LastName":"Zhu", "Email":"qq" 完整代码: <script> var User = "UserID":11, "Name":"FirstName":"Truly","LastName":"Zhu", "Email":"zhuleipro" alert(User.Name.FirstName); </script> 现在我们增加一个新的需求,我们某个页面需要一个用户列表,而不仅仅是一个单一的用户信息,那么这里就需要创建一个用户列表数组。 下面代码演示了使 用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" 完整代码: <script> 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); </script> 事实上除了使用"."引用属性外,我们还可以使用下面语句: alert(UserList0"Name""FirstName"); 或者 alert(UserList0.Name"FirstName"); 现在读者应该对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="<option value='"+item.id+"'>"+item.stringStyle+"</option>" $("#producttimeStyleId").append(temp); ); ); 例2=需要自己组装json数组格式。= try StringBuffer sb=new StringBuffer(""); int length=OneNesType.size; for (int i = 0; i <length; i+) Column model=(Column)OneNesType.get(i); sb.append(""); sb.append("'id':"); sb.append(""+model.getId+","); sb.append("'name':"); sb.append("'"+model.getName+"'"); sb.append(","); if(sb.lastIndexOf(",")>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="<option value='"+item.id+"'>"+item.stringStyle+"</option>" $("#producttimeStyleId").append(temp); ); ); 例2=需要自己组装json数组格式。= try StringBuffer sb=new StringBuffer(""); int length=OneNesType.size; for (int i = 0; i <length; i+) Column model=(Column)OneNesType.get(i); sb.append(""); sb.append("'id':"); sb.append(""+model.getId+","); sb.append("'name':"); sb.append("'"+model.getName+"'"); sb.append(","); if(sb.lastIndexOf(",")>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<Category> 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<Person> ps = gson.fromJson(str, new TypeToken<List<Person>>.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的同学有所帮助。

    注意事项

    本文(json的基本使用和使用Gson解析json.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开