`
sxdtzhaoxinguo
  • 浏览: 228653 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

JSON是什么?如何产生的?

 
阅读更多
JSON:是一种轻量级的数据交换方式,它是基于javascript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
掌握了 JSON 格式之后,在 JavaScript 中使用它就很简单了。JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。

创建一个json数组:
var people = { "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
],
json数组转换成String类型的文本字符串:
String newJSONtext = people.toJSONString();

如果要处理大量 JavaScript 对象,那么 JSON 几乎肯定是一个好选择,这样就可以轻松地将数据转换为可以在请求中发送给服务器端程序的格式。

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



分享到:
评论

相关推荐

    Table2JSONTree_C#根据TABLE产生JSON树_jsontree2table_

    在描述中提到的"Table2JSONTree_C#根据TABLE产生JSON树_jsontree2table_"是一个关于将数据库中的表格数据转换为JavaScript Object Notation (JSON)树形结构的过程。这种转换在前端开发中非常常见,特别是在需要在...

    editplus 支持 解析json

    这有助于减少因格式不规范而产生的错误,提高代码质量。 2. **JSON验证**:除了格式化,EditPlus还可能包含JSON验证功能,确保输入的JSON字符串符合语法规则。如果JSON数据有误,编辑器会给出相应提示,帮助开发者...

    TCL解析json

    在IT行业中,JSON(JavaScript Object Notation)是一种广泛使用的轻量级数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。TCL(Tool Command Language)是一种动态编程语言,具有简单、灵活的特点,...

    asp数据集输出json格式数据,也可以多重嵌套的JSON

    对于ASP的数据集,如果其中包含关系型数据,如子分类、多对多关联等,就会产生嵌套的JSON。 假设我们有一个数据集,包含用户信息,每个用户又有多个订单,每个订单又有多个商品。那么,我们可以通过遍历Recordset,...

    JsonView工具

    - 虽然JsonView提供了一些编辑功能,但在编辑数据后,确保你了解可能产生的影响,因为这可能改变原始数据的含义。 - 由于JsonView是在浏览器环境中运行,因此其安全性和隐私保护取决于你的浏览器设置,不建议在处理...

    Json格式化工具

    这不仅提高了工作效率,也减少了因理解错误的数据结构而产生的困扰。 总的来说,"HiJson 2.1.2_jdk64.exe"这个文件是JSON格式化工具的64位版本,其小巧的体积和低内存占用使其成为开发者日常工作中的一大助手。无论...

    jsp网页产生json传值到java的servlet,再回传到jsp页面

    在本场景中,我们探讨的是如何使用JSP通过Ajax(Asynchronous JavaScript and XML)发送JSON(JavaScript Object Notation)数据到Java的Servlet,然后Servlet处理这些数据并返回JSON响应给JSP页面。这是一个典型的...

    自定义ExpandableListView 、Json解析、短信等

    主要四部分内容:自定义ExpandableListView ,Json解析,短信,... "content": "PP(通讯达人)完全免费,使用PP(通讯达人)任何功能都不会收取费用,在使用中产生的流量由网络运营商收取,建议配合上网套餐使用。" },

    谷歌浏览器json插件,Json-Handle插件下载安装使用

    - 确保你是在安全可信的环境中使用编辑功能,因为直接修改JSON数据可能会对应用程序产生影响。 - 插件可能不支持所有类型的JSON数据,遇到复杂或自定义格式的JSON时,可能无法正确解析或编辑。 - 定期更新Json-...

    Json格式图形工具

    对于初学者来说,这样的工具能够帮助他们更快地理解和学习JSON的结构,而对于经验丰富的开发者来说,它则能提高工作效率,减少因解析复杂JSON数据而产生的困扰。 JsonView还可能具备搜索功能,允许用户通过关键词...

    dotnet-Utf8Json用于C超快的JSON序列化程序

    传统JSON库在序列化和反序列化过程中通常会产生大量的内存分配,而Utf8Json通过预分配缓冲区和复用内存来实现零分配。这减少了垃圾回收的压力,对于性能敏感的应用来说至关重要。 3. **自定义序列化行为** 用户...

    PHP JSON详解.md

    - **字符编码**:在解码JSON字符串时,如果JSON字符串中包含非UTF-8字符,可能会导致解码失败或产生意外的结果。确保你的JSON字符串是有效的UTF-8编码。 - **性能问题**:对于大型JSON数据,使用`json_encode()`和`...

    批量处理labelme生成的json工具

    批量处理labelme生成的json工具是专门针对Labelme产生的JSON文件设计的实用程序,旨在提高数据预处理的效率。在训练Mask R-CNN这样的模型时,我们需要大量的带注解图像数据。而Labelme生成的JSON文件虽然包含了详尽...

    JSONiq: XQuery for JSON

    JSONiq的两个不同配置文件,第一个配置文件去除了所有直接与XML相关的功能,增加了JSON构造函数和导航功能,这种配置下产生的语言更为简单,易于优化,并非常适合在中间件中的JSON视图。这种配置语言虽然简单,但是...

    net.json包

    在实际开发中,`net.json`包能极大地简化JSON相关的任务,提高开发效率,减少因处理JSON数据而产生的错误。无论是前端还是后端开发,只要涉及到JSON数据的处理,这个包都可能成为你不可或缺的工具。在使用过程中,...

    Newtonsoft.Json-for-Unity-master

    同时,要关注性能问题,大量频繁的序列化和反序列化操作可能会对游戏性能产生影响。 总结,"Newtonsoft.Json-for-Unity-master"为Unity开发者提供了一个强大的JSON处理工具,通过其丰富的特性和API,可以轻松处理...

    JsonViewer

    在实际应用中,JsonViewer能够处理各种来源的JSON数据,如HTTP响应、文件内容或者程序内部产生的JSON字符串。通过其直观的界面,用户可以选择粘贴或导入JSON文本,然后工具会自动解析并以树形结构展示出来,每个键值...

    chrome-jsonViewer.zip

    5. **实时编辑**:在某些情况下,用户还可以直接在查看器中编辑JSON数据,然后应用更改(请注意,这可能会对实际数据产生影响,操作需谨慎)。 此外,了解一些基本的JSON语法是很有帮助的。JSON数据由键值对组成,...

    JsonProject demo

    此外,该项目还可能涉及到错误处理,因为网络请求和JSON解析都可能产生错误。正确地捕获和处理这些错误是编写健壮代码的关键。例如,当JSON数据无效时,`JSONObjectWithData(_:options:error:)`会返回`nil`,此时你...

    json格式化工具【免积分下载】

    这在没有网络环境或者需要保护隐私数据的情况下非常实用,避免了数据在网络传输过程中可能产生的安全风险。 "jsonviewer"可能是这个工具的主程序文件名。它很可能是一个小巧的桌面应用,用户可以通过它打开包含JSON...

Global site tag (gtag.js) - Google Analytics