JSON入门

JSON入门

大家好,又见面了,我是全栈君。

什么是JSON

JSON:JavaScript Object Notation 【JavaScript 对象表示法】

JSON 是存储和交换文本信息的语法。类似 XML。

JSON采用完全独立于任何程序语言的文本格式,使JSON成为理想的数据交换语言S

为什么需要JSON

提到JSON,我们就应该和XML来进行对比。XML也是一种存储和交换文本信息的手段。那么JSON好在哪里呢??

JSON 比 XML 更小、更快,更易解析

  • javaScript原生支持JSON,解析速度会很快
  • XML解析成DOM对象的时候,浏览器【IE和fireFox】会有差异
  • 使用JSON会更简单

这里写图片描述

更加容易创建JavaScript对象

var p = { 
         'city':['北京','上海','广州','深圳']}; for(var i=0;i<p.city.length;i++){ document.write(p.city[i]+"<br/>"); }


JSON语法

客户端与服务端的交互数据无非就是两种

  • 数组
  • 对象

于是乎,JSON所表示的数据要么就是对象,要么就是数组

JSON语法是javaScript语法的子集,javaScript用[]中括号来表示数组,用{}大括号来表示对象,JSON亦是如此

JSON数组:

 var employees = [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName": "Carter" } ];


JSON对象

 var obj = { age: 20, str: "zhongfucheng", method: function () { alert("我爱学习"); } };

当然啦,数组可以包含对象,在对象中也可以包含数组


解析JSON

javaScript原生支持JSON的,我们可以使用eval()函数来解析JSON,把JSON文本数据转换成一个JavaScript对象。

 function test() { //在写JOSN的时候,记得把带上逗号 var txt = "{a:123," + "b:'zhongfucheng'}"; //使用eval解析JSON字符串,需要增添() var aa = eval("(" + txt + ")"); alert(aa); } 

效果

这里写图片描述

不用框架时将JavaBean转成JSON

  • 使用Strus2的时候,Struts2自带了组件能够让JavaBean对象、集合转成是JSON,不用我们自己拼接…这是非常方便的。
  • 使用SpringMVC的时候,SpringMVC也支持将JavaBean转成JSON

但是,我们不一定使用框架来做开发呀。因此,我们还得学习使用第三方库来将JavaBean对象、集合转成JSON

导入开发包

  • commons-io-2.0.1.jar
  • commons-lang-2.5.jar
  • commons-collections-3.1.jar
  • commons-beanutils-1.7.0.jar
  • ezmorph-1.0.3.jar
  • json-lib-2.1-jdk15.jar

事例代码

 package cn.itcast.javaee.js.bean2json; import net.sf.json.JSONArray; import java.util.*; /**  * 使用第三方工具,将JavaBean对象/List或Set或Map对象转成JSON   * @author AdminTC  */ public class TestBean2Json { private static void javabean2json() { City city = new City(1,"广州"); JSONArray jSONArray = JSONArray.fromObject(city); String jsonJAVA = jSONArray.toString(); System.out.println(jsonJAVA); //[{"id":1,"name":"广州"}] } private static void list2json() { List<City> cityList = new ArrayList<City>(); cityList.add(new City(1,"广州")); cityList.add(new City(2,"珠海")); JSONArray jSONArray = JSONArray.fromObject(cityList); String jsonJAVA = jSONArray.toString(); System.out.println(jsonJAVA); //[{"id":1,"name":"广州"},{"id":2,"name":"珠海"}] } private static void set2json() { Set<City> citySet = new LinkedHashSet<City>(); citySet.add(new City(1,"广州")); citySet.add(new City(2,"珠海")); JSONArray jSONArray = JSONArray.fromObject(citySet); String jsonJAVA = jSONArray.toString(); System.out.println(jsonJAVA); //[{"id":1,"name":"广州"},{"id":2,"name":"珠海"}] } private static void javabeanlist2json() { List<City> cityList = new ArrayList<City>(); cityList.add(new City(1,"中山")); cityList.add(new City(2,"佛山")); Province province = new Province(1,"广东",cityList); JSONArray jSONArray = JSONArray.fromObject(province); String jsonJAVA = jSONArray.toString(); System.out.println(jsonJAVA); /*  [  { 
                                                                                                                                                                                                  "id":1,  "name":"广东"  "cityList":[{"id":1,"name":"中山"},{"id":2,"name":"佛山"}],  }  ]  */ } private static void map2json() { List<City> cityList = new ArrayList<City>(); cityList.add(new City(1,"中山")); cityList.add(new City(2,"佛山")); Map<String,Object> map = new LinkedHashMap<String,Object>(); map.put("total",cityList.size());//表示集合的长度 map.put("rows",cityList);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107703.html原文链接:https://javaforall.net

(0)
上一篇 2022年3月13日 上午11:00
下一篇 2022年3月13日 上午11:00


相关推荐

  • Android Studio安装及环境配置教程

    Android Studio安装及环境配置教程前言 首先需要确定好电脑是否有安装 java 环境 即是否安装有 JDK 验证方法 直接电脑桌面 win R 输入 cmd 然后在黑窗口中分别输入 java javac javadoc java version enter 键 注意是输入一个指令按一次 enter 键 如果成功的有输出 说明 java 环境已经有安装过且安装成功 如果不成功则需要重新安装 JAVAJDK 并完成 java 环境的配置 相关

    2026年3月19日
    3
  • css sprites介绍

    css sprites介绍一 CSSSprites 简介通常被意译为 CSS 图像拼合 或 CSS 贴图定位 CSSSprites 并不是一门新技术 目前它已经在网页开发中发展得较为成熟 CSSSprites 并不是什么金科玉律 但在很多情况下 它有着一定的优势 最重要的是它可以减轻服务器的负载 提高网页加载速度 CSSSprites 允许你将一个页面涉及到的所有零星图片都包含到一张大图中去 这样一来 当访问该页

    2026年3月19日
    3
  • ansys随机振动分析_workbench扫频振动仿真

    ansys随机振动分析_workbench扫频振动仿真随机振动(PSD)分析步骤PSD分析包括如下六个步骤:1.建造模型;2.求得模态解;3.扩展模态;4.获得谱解;5.合并模态;6.观察结果。以上六步中,前两步跟单点响应谱分析一样,后四步将在下面作详细讲解。Ansys/Professional产品中不能进展随机振动分析。如果选用GUI交互方法进展分析,模态分析选择对话框〔MODOPT命令〕中包含有是否进展模态扩展选项〔MXPAND命令〕,将其设置为YES就可以进展下面的:扩展模态。这样,第二步〔求得模态解〕和第三步〔扩展模态〕就合并到一个步

    2022年10月10日
    4
  • jsplumb设置锚点_jsplumb 中文教程

    jsplumb设置锚点_jsplumb 中文教程https wdd js org jsplumb chinese tutorial 本文的图片是托管于七牛云的 由于使用的是测试域名 可能不知道哪天 图片就无法显示了 不过每个例子都有简单的在线 demo demo 剩千图 还是能看懂的 你有没有想过在你的网站上展示图表或者甚至在浏览器应用程序中使用它 用 jsPlumb 你可以 它是完全免费的 并根据 MIT 许可证提供 您可以直接从 jsPlumb

    2026年3月18日
    3
  • gpt分区怎么修复引导?gpt分区修复引导多种方法(支持自动和手动修复)

    gpt分区怎么修复引导?gpt分区修复引导多种方法(支持自动和手动修复)

    2026年3月16日
    3
  • JSP开发中的分层模式

    JSP开发中的分层模式分层模式 1 分层模式是最常见的一种架构模式 2 分层模式是其他模式的基础 目的 业务处理代码与 JSP 代码混在一起 不易阅读 不易代码维护 方式 将代码根据职责不同 进行分离分层会导致代码适度增多 但会使代码更有条理 更利于阅读 维护

    2026年3月26日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号