JSON数据格式的简述和应用

2024-06-15 22:48

本文主要是介绍JSON数据格式的简述和应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



在学习AJAX的过程中,接触了一种新的数据格式——Json数据格式,一开始不是很明白,后来通过做一个“股票”的小程序,有了些了解,下面是我的总结(并非"股票"例子程序),希望对大家有所帮助。

 

,概念

(1)一种轻量级的数据交换格式;

(2)纯文本格式,Javascript原生支持;

 

,XML格式比较:

虽然Ajax的定义中有XML,但是很多应用中会选用json格式来进行数据交换;

 

(1)XML格式的优势:因为是JavaScript的原生支持,所以它在JavaScript里面去解析式非常快的,可

以迅速的把json的文本格式转换成JavaScript里的对象或数组,不需要用DOM,如果是XML则还需要

用DOM来解析,而DOM的操作在不同的浏览器中还是存在着一些小的差异的,并且在IE这种浏览器中DOM操作的效率也不是很好;

 

(2)XML格式的缺点:XML已经是很成熟的数据格式了,各种各样的应用都在使用XML,所以无论是在任

何一种服务器端语言里,都有很成熟的辅助的开源包/平台自己提供的包去操作XML的数据,去生成XML格

式的数据,但是Json,这方面的成熟度还相对较低,虽然随着Ajax技术的发展和流行,很多服务器端语言

也都有了一些开源包去来做Json格式数据的生成,但是和json相比成熟度还是很低的。

 

,例子

(1)简单认识

右边的Json数据格式中的内容——

中括号[]:代表数组;

大括号{}:用来定义对象;——右边json格式的数据,每个大括号{}就对应一个book对象,所以共3个book对象; isdn、author、name、prive均是对象book的属性;

 

(2)小应用

如果从服务器端返回的一个json数据格式最终代表的是数组,可以直接用eval()的方式去对它进行一个执

行,返回成一个javascript数组;

 

如果json数据格式对应的是一个对象的话,则必须要在它的外层加上"("   ")",再用eval()方法执行;

 

[html] view plain copy print ? CODE_ico.pnguploading.4e448015.gif转存失败重新上传取消 在CODE上查看代码片 ico_fork.svguploading.4e448015.gif转存失败重新上传取消 派生到我的代码片
  1. <html>  
  2.     <head>  
  3.         <title></title>  
  4.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  5.         <script type="text/javascript">   
  6.               
  7.            function jsonTest(){  
  8.                  
  9.              //JSON数据格式定义(Json无非就是一个数组或者一个对象)  
  10.              //定义一个Json数据格式的数据,并赋值给json1  
  11.              var json1="[1,2,{" +   
  12.                      "a:123,b:'String',c:[100,1001]" +  
  13.              "}]";  
  14.               
  15.              var jsonArray = eval(json1);//返回一个包含3个元素的数组  
  16.              alert(jsonArray[0]);//显示数组jsonArray的第1个元素  
  17.              alert(jsonArray[1]);//显示jsonArray的第2个元素  
  18.              alert(jsonArray[2].a);//显示jsonarray的第3个元素(是个对象)的a属性  
  19.              alert(jsonArray[2].b);//显示jsonarray的第3个元素(是个对象)的b属性  
  20.              alert(jsonArray[2].c);//显示jsonarray的第3个元素(是个对象)的c属性  
  21.                
  22.             //定义一个Json数据格式的数据,并赋值给json2  
  23.              var json2="{" +   
  24.                      "a:'Hello',b:'[1,2,3]',c:function(){alert(\"Hi!!!\")}" +            
  25.                "}";  
  26.              var jsonObj=eval("("+ json2 + ")");//返回一个对象——此对象包含a、b属性和c()函数  
  27.              alert(jsonObj.a);//显示jsonObj对象的属性a的值  
  28.              alert(jsonObj.b);//显示jsonObj对象的属性b的值  
  29.              jsonObj.c();  //调用jsonObj对象的c()函数  
  30.            }  
  31.         </script>  
  32.     </head>  
  33.     <body>  
  34.        <input type="button" value="JSON示例" οnclick="jsonTest()" />  
  35.     </body>  
  36. </html>  
<html><head><title></title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script type="text/javascript"> function jsonTest(){//JSON数据格式定义(Json无非就是一个数组或者一个对象)//定义一个Json数据格式的数据,并赋值给json1var json1="[1,2,{" + "a:123,b:'String',c:[100,1001]" +"}]";var jsonArray = eval(json1);//返回一个包含3个元素的数组alert(jsonArray[0]);//显示数组jsonArray的第1个元素alert(jsonArray[1]);//显示jsonArray的第2个元素alert(jsonArray[2].a);//显示jsonarray的第3个元素(是个对象)的a属性alert(jsonArray[2].b);//显示jsonarray的第3个元素(是个对象)的b属性alert(jsonArray[2].c);//显示jsonarray的第3个元素(是个对象)的c属性//定义一个Json数据格式的数据,并赋值给json2var json2="{" + "a:'Hello',b:'[1,2,3]',c:function(){alert(\"Hi!!!\")}" +          "}";var jsonObj=eval("("+ json2 + ")");//返回一个对象——此对象包含a、b属性和c()函数alert(jsonObj.a);//显示jsonObj对象的属性a的值alert(jsonObj.b);//显示jsonObj对象的属性b的值jsonObj.c();  //调用jsonObj对象的c()函数}</script></head><body><input type="button" value="JSON示例" onclick="jsonTest()" /></body>
</html>

 

 

 

 

IE调试窗口:看变量值

 点击查看运行结果

 

四,总结:

(1)了解:Json数据格式是怎样一个形式;

(2)掌握:如果从服务器端接受到了Json数据后,怎么把它转换成Javascript中的数组/对象——使用eval()方法

(注:客户端使用responseText接收服务器端返回的Json数据)

(3)JSON数据格式定义(Json无非就是一个数组或者一个对象)

这篇关于JSON数据格式的简述和应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1064803

相关文章

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

Python中yield的用法和实际应用示例

《Python中yield的用法和实际应用示例》在Python中,yield关键字主要用于生成器函数(generatorfunctions)中,其目的是使函数能够像迭代器一样工作,即可以被遍历,但不会... 目录python中yield的用法详解一、引言二、yield的基本用法1、yield与生成器2、yi

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.

从基础到高阶详解Python多态实战应用指南

《从基础到高阶详解Python多态实战应用指南》这篇文章主要从基础到高阶为大家详细介绍Python中多态的相关应用与技巧,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、多态的本质:python的“鸭子类型”哲学二、多态的三大实战场景场景1:数据处理管道——统一处理不同数据格式

Java Stream 的 Collectors.toMap高级应用与最佳实践

《JavaStream的Collectors.toMap高级应用与最佳实践》文章讲解JavaStreamAPI中Collectors.toMap的使用,涵盖基础语法、键冲突处理、自定义Map... 目录一、基础用法回顾二、处理键冲突三、自定义 Map 实现类型四、处理 null 值五、复杂值类型转换六、处理

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布