`

对于json的学习(java javascritp)

阅读更多
要使用json需要到www.json.org官网去下载json所需要的js(javascript)和jar(java)
json
JSON(javascript OBject Notation)
是一种轻量级数据交换格式。易于阅读和编写,同时也易于机器的解释和生成。
它基于javascript(Standard ECMA-262 3rd Edition - December 1999)的一个子集.
JSON采用完全独立于语言的文本格式,但也使用了类似于c语言家族的习惯,(包括C,C++,C#,JAVA,javascript,perl,Rython艾 )。
这些使JSON成为理想的数据交换语言。

JSON有两种结构:
1. “名称/值”对的集合(A collection of name/value pairs)
2.值的有序列表(An ordered list of values)在大部分语言中,它被理解为数组(array)。
json的形式
对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
对象用{} 而 数组用[]  每个元素之间用 ','隔开。
JSON优点:
JSON 不但能够提高可读性,而且可以减少复杂性。


JSON对象和JSON字符串之间的相互转换是关键
 JSON字符串:
  var str1 = '{ "name": "cxh", "sex": "man" }';
  JSON对象:
  var str2 = { "name": "cxh", "sex": "man" };
一、JSON字符串转换为JSON对象
  要使用上面的str1,必须使用下面的方法先转化为JSON对象:
  //由JSON字符串转换为JSON对象来源:考试大
  var obj = eval('(' + str + ')');
  或者
  var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
  或者
  var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
  然后,就可以这样读取:
  Alert(obj.name);
  Alert(obj.sex);
  特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。


实例代码:
function jsonal()
{
var json='{"A":"a","b":"b"}';
alert(json);
var obj=eval('('+json+')');
alert(obj.A);
var oj=json.parseJSON();
alert(oj.A);
var sj=JSON.parse(json);
alert(sj.A);

}

JSON和XML的比较
◆可读性
JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,很难分出胜负。
◆可扩展性
XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。不过JSON在Javascript主场作战,可以存储Javascript复合对象,有着xml不可比拟的优势。
◆编码难度
XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有提供的工具。无工具的情况下,相信熟练的开发人员一样能很快的写出想要的xml文档和JSON字符串,不过,xml文档要多很多结构上的字符。
◆解码难度
XML的解析方式有两种:
一是通过文档模型解析,也就是通过父标签索引出一组标记。例如:xmlData.getElementsByTagName("tagName"),但是这样是要在预先知道文档结构的情况下使用,无法进行通用的封装。
另外一种方法是遍历节点(document 以及 childNodes)。这个可以通过递归来实现,不过解析出来的数据仍旧是形式各异,往往也不能满足预先的要求。
凡是这样可扩展的结构数据解析起来一定都很困难。
JSON也同样如此。如果预先知道JSON结构的情况下,使用JSON进行数据传递简直是太美妙了,可以写出很实用美观可读性强的代码。如果你是纯粹的前台开发人员,一定会非常喜欢JSON。但是如果你是一个应用开发人员,就不是那么喜欢了,毕竟xml才是真正的结构化标记语言,用于进行数据传递。
而如果不知道JSON的结构而去解析JSON的话,那简直是噩梦。费时费力不说,代码也会变得冗余拖沓,得到的结果也不尽人意。但是这样也不影响众多前台开发人员选择JSON。因为json.js中的toJSONString()就可以看到JSON的字符串结构。
当然不是使用这个字符串,这样仍旧是噩梦。常用JSON的人看到这个字符串之后,就对JSON的结构很明了了,就更容易的操作JSON。
以上是在Javascript中仅对于数据传递的xml与JSON的解析。在Javascript地盘内,JSON毕竟是主场作战,其优势当然要远远优越于xml。如果JSON中存储Javascript复合对象,而且不知道其结构的话,我相信很多程序员也一样是哭着解析JSON的。

JAVA语言的一个例子
String json="{'name':'tanli','age':'18'}";
JSONObject obj=JSONObject.fromObject(json);
System.out.println(obj.getString("name"));
System.out.println(obj.getString("age"));
String son="['ta','d','d']";
JSONArray array=JSONArray.fromObject(son);
System.out.println(array.get(0));
System.out.println(array.get(1));
分享到:
评论

相关推荐

    javascritp基础语法

    JavaScript 基础语法总结 JavaScript 是一种广泛应用于 web 开发的脚本语言,它能够使网页更加interactive 和动态。本文总结了 JavaScript 的基础语法,包括创建脚本块、隐藏脚本代码、浏览器不支持时的处理、链接...

    javascritp 时间选择联动框

    年月日 三级联动 默认选择是系统当天时间,只能选择大于系统时间的日期....

    利用Javascritp的对象特性,计算字符串重复字符个数(方法同Java版)

    利用Javascritp的对象特性,计算字符串重复字符个数(方法同Java版,不过Java版想利用其他办法,测试中)

    javascritp 日期加减、间隔函数源码

    特别是对于日期加减及计算日期间隔这样的常见任务,JavaScript 并没有提供像 VBScript 中那样直接的方法(如 `DateAdd` 和 `DateDiff`)。因此,本文将详细介绍如何在 JavaScript 中实现类似的功能,并通过示例代码...

    javascritp高级程序设计(第三版)

    pdf 高清 完整书签,javascript学习的宝典,学习一遍后可当字典来用!

    JavaScritp、ASP车辆调度系统.pdf

    JavaScritp、ASP车辆调度系统

    html+CSS+js+VUE+element+java后台项目示例

    包含html-CSS-javascript-vue-element等多项基础知识课件详解,为web开发提供基础技术。并包含一个web项目的示例代码,利于掌握Java后台和前端的程序设计流程。

    网站的登录模版[html css/div javascritp ]

    实现 "实现效果.jpg" 的所示效果。 1:采用div布局 不使用table 2:css javascript images 放在自己的文件夹内 3:通过javascript 实现输入验证 4:账号要求 6-12位 必须以字母开头 只能包含 a-z、0-...6:注意用户体验

    JavaScritp网站特效(1)

    JavaScript是一种广泛应用于网页和互联网应用的编程语言,它赋予了网页动态交互的能力,极大地提升了用户...通过学习和实践这些知识点,开发者能够提升其JavaScript技能,创造出更加生动、富有吸引力的网页应用程序。

    javascritp 高级教程

    它的语法深受C语言的影响,但与C++或Java等编译型语言不同,JavaScript代码通常在浏览器中实时解析执行。基础概念包括变量(var、let、const)、数据类型(字符串、数字、布尔、null、undefined、对象、数组)、...

    javaScritp.zip

    JavaScript是SUN与网景发明的,基于对象的,区分大小写的,弱的脚本语言.JavaScript能做什么? 表单验证, 客户端编程

    JavaScritp:Java的材料操作库

    对于更复杂的操作,可以使用"lodash"或"ramda"这样的实用程序库,它们提供了大量的函数式编程工具,使得数据处理变得更加简洁和高效。 在JavaScript中,我们还可以利用闭包、高阶函数和箭头函数来实现函数工厂,...

    JavaScritp网站特效(2).rar

    JavaScript是一种广泛应用于网页和应用程序的脚本语言,它在客户端运行,为用户提供动态交互体验。...学习和掌握JavaScript的最佳实践,如模块化、异步编程、错误处理等,将有助于提升代码质量和可维护性。

    javascritp 鼠标触发事件大全

    JavaScript是Web开发中的重要脚本语言,特别是在ASP(Active Server Pages)环境中,它极大地增强了页面交互性和用户体验。本文将深入探讨JavaScript中的鼠标触发事件,并结合ASP应用,展示它们如何为网页带来便利。...

    javascritp+css+tabpanel的实现

    在网页设计中,Tab Panel是一种常见的用户界面元素,它允许用户通过点击不同的标签来切换显示不同的内容区域。... ...每个标签都是一个链接,而内容区域则以`<div>`或其他块级元素呈现,通常设置为隐藏,只有当对应的标签...

    javascritp添加url参数将参数加入到url中.docx

    ### JavaScript 添加 URL 参数知识点详解 ...通过上述知识点的学习和理解,你可以更好地掌握如何使用 JavaScript 动态地修改 URL 地址中的查询参数,这对于前端开发人员来说是一项非常实用的技能。

    Javasript面试题(很全面得)

    JavaScript,简称JS,是Web开发领域中不可或缺的脚本语言,尤其在前端开发中扮演着核心角色。这篇面试题集合涵盖了广泛的知识点,旨在帮助求职者准备JavaScript面试,以期获得理想的工作。以下是对这些面试题所涉及...

    JavaScript手册-中文

    JavaScript手册,包括核心语言中的对象和客户端、服务器端的扩展。JavaScript 是 Netscape 跨平台的基于对象的适合于客户和服务器的脚本语言。

    javascrip从入门到精通HTML版

    JavaScript是Web开发中不可或缺的一部分,尤其对于前端开发者来说,它的重要性不言而喻。这个名为“javascrip从入门到精通HTML版”的资源显然旨在帮助初学者掌握JavaScript语言,并结合HTML进行实际应用。让我们深入...

    javascritp实现input输入框相关限制用法

    ### JavaScript 实现 Input 输入框相关限制用法 在 Web 开发中,经常需要对用户的输入进行限制或格式化处理,以确保数据的有效性和安全性。... #### 1.... ...如果希望去掉这个虚线框,可以在`<input>`标签中加入`hideFocus...

Global site tag (gtag.js) - Google Analytics