JSON入门教程

DDR4协议规范之(一)DDR4结构和寻址 DDR4 SDRAM结构和寻址DDR4 SDRAM的封装和寻址新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 DDR4 SDRAM的封装和寻址 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习 阅读详情

尽管有许多宣传关于 XML 如何拥有跨平台,跨语言的优势,然而,除非应用于 Web Services,否则,在普通的 Web 应用中,开发者经常为 XML 的解析伤透了脑筋,无论是服务器端生成或处理 XML,还是客户端用 JavaScript 解析 XML,都常常导致复杂的代码,极低的开发效率。实际上,对于大多数 Web 应用来说,他们根本不需要复杂的 XML 来传输数据,XML 的扩展性很少具有优势,许多 AJAX 应用甚至直接返回 HTML 片段来构建动态 Web 页面。和返回 XML 并解析它相比,返回 HTML 片段大大降低了系统的复杂性,但同时缺少了一定的灵活性。

  现在, JSON 为 Web 应用开发者提供了另一种数据交换格式。让我们来看看 JSON 到底是什么,同 XML 或 HTML 片段相比,JSON 提供了更好的简单性和灵活性。

  JSON 数据格式解析

  和 XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的 Object 对象。

  String,Number 和 Boolean 用 JSON 表示非常简单。例如,用 JSON 表示一个简单的 String “ abc ”,其格式为:

"abc"

  除了字符 ",,/ 和一些控制符(b,f,n,r,t)需要编码外,其他 Unicode 字符可以直接输出。

一个 Number 可以根据整型或浮点数表示如下:

 这与绝大多数编程语言的表示方法一致,例如:

12345(整数)
-3.9e10(浮点数)

  Boolean 类型表示为 true 或 false 。此外,JavaScript 中的 null 被表示为 null,注意,true、false 和 null 都没有双引号,否则将被视为一个 String 。

  JSON 还可以表示一个数组对象,使用 [] 包含所有元素,每个元素用逗号分隔,元素可以是任意的 Value,例如,以下数组包含了一个 String,Number,Boolean 和一个 null:

["abc",12345,false,null]

  Object 对象在 JSON 中是用 {} 包含一系列无序的 Key-Value 键值对表示的,实际上此处的 Object 相当于 Java 中的 Map<String, Object>,而不是 Java 的 Class 。注意 Key 只能用 String 表示。

  例如,一个 Address 对象包含如下 Key-Value:

city:Beijing
street:Chaoyang Road
postcode:100025(整数)

  用 JSON 表示如下:

{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}

  其中 Value 也可以是另一个 Object 或者数组,因此,复杂的 Object 可以嵌套表示,例如,一个 Person 对象包含 name 和 address 对象,可以表示如下:

{"name":"Michael","address":
  {"city":"Beijing","street":" Chaoyang Road ","postcode":100025}
}

JavaScript 处理 JSON 数据

  上面介绍了如何用 JSON 表示数据,接下来,我们还要解决如何在服务器端生成 JSON 格式的数据以便发送到客户端,以及客户端如何使用 JavaScript 处理 JSON 格式的数据。

  我们先讨论如何在 Web 页面中用 JavaScript 处理 JSON 数据。我们通过一个简单的 JavaScript 方法就能看到客户端如何将 JSON 数据表示给用户:

function handleJson() {
 var j={"name":"Michael","address":
   {"city":"Beijing","street":" Chaoyang Road ","postcode":100025}
 };
 document.write(j.name);
 document.write(j.address.city);
}

  假定服务器返回的 JSON 数据是上文的:

{"name":"Michael","address":
  {"city":"Beijing","street":" Chaoyang Road ","postcode":100025}
}

  只需将其赋值给一个 JavaScript 变量,就可以立刻使用该变量并更新页面中的信息了,相比 XML 需要从 DOM 中读取各种节点而言,JSON 的使用非常容易。我们需要做的仅仅是发送一个 Ajax 请求,然后将服务器返回的 JSON 数据赋值给一个变量即可。有许多 Ajax 框架早已包含了处理 JSON 数据的能力,例如 Prototype(一个流行的 JavaScript 库:http://prototypejs.org)提供了 evalJSON() 方法,能直接将服务器返回的 JSON 文本变成一个 JavaScript 变量:

new Ajax.Request("http://url", {
 method: "get",
 onSuccess: function(transport) {
  var json = transport.responseText.evalJSON();
  // TODO: document.write(json.xxx);
 }
});

服务器端输出 JSON 格式数据

  下面我们讨论如何在服务器端输出 JSON 格式的数据。以 Java 为例,我们将演示将一个 Java 对象编码为 JSON 格式的文本。

  将 String 对象编码为 JSON 格式时,只需处理好特殊字符即可。另外,必须用 (") 而非 (') 表示字符串:

将 Number 表示为 JSON 就容易得多,利用 Java 的多态,我们可以处理 Integer,Long,Float 等多种 Number 格式:

static String number2Json(Number number) {
  return number.toString();
}

  Boolean 类型也可以直接通过 toString() 方法得到 JSON 的表示:

static String boolean2Json(Boolean bool) {
  return bool.toString();
}

  要将数组编码为 JSON 格式,可以通过循环将每一个元素编码出来:

  最后,我们需要将 Map<String, Object> 编码为 JSON 格式,因为 JavaScript 的 Object 实际上对应的是 Java 的 Map<String, Object> 。该方法如下:

为了统一处理任意的 Java 对象,我们编写一个入口方法 toJson(Object),能够将任意的 Java 对象编码为 JSON 格式:

  我们并未对 Java 对象作严格的检查。不被支持的对象(例如 List)将直接抛出 RuntimeException 。此外,为了保证输出的 JSON 是有效的,Map<String, Object> 对象的 Key 也不能包含特殊字符。细心的读者可能还会发现循环引用的对象会引发无限递归,例如,精心构造一个循环引用的 Map,就可以检测到 StackOverflowException:

@Test(expected=StackOverflowError.class)
public void testRecurrsiveMap2Json() {
  Map<String, Object> map = new HashMap<String, Object>();
  map.put("key", map);
  JsonUtil.map2Json(map);
}

  好在服务器处理的 JSON 数据最终都应该转化为简单的 JavaScript 对象,因此,递归引用的可能性很小。

 

  最后,通过 Servlet 或 MVC 框架输出 JSON 时,需要设置正确的 MIME 类型(application/json)和字符编码。假定服务器使用 UTF-8 编码,则可以使用以下代码输出编码后的 JSON 文本:

response.setContentType("application/json;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter pw = response.getWriter();
pw.write(JsonUtil.toJson(obj));
pw.flush();

  小结

  JSON 已经是 JavaScript 标准的一部分。目前,主流的浏览器对 JSON 支持都非常完善。应用 JSON,我们可以从 XML 的解析中摆脱出来,对那些应用 Ajax 的 Web 2.0 网站来说,JSON 确实是目前最灵活的轻量级方案。

SolidWorks速成教程P1——简介及基础操作 SolidWorks教程P1——简介及基础操作 阅读详情

相关推荐

概述DeepLab系列(deeplab v1, deeplab v2, deeplab v3, deeplab v3+)

前言:图像分割是指像素级别的图像识别,即标注出图像中每个像素所属的对象类别。 语义分割更注重类别之间的区分,而实例分割更注重个体之间的区别。 DeepLab是由Google团队提出的一系列图像分割算法。 DeepLab v1 (2014年) Paper (ICLR 2015) Code 创新点: 空洞卷积(Atrous Conv); <解决编码过程中信号不断被下采样,细节丢失的问题> 全连接条件随机场(Fully-connected Conditional Random Field)。

ZSH12345678900的博客 5527

RPA入门到精通—【UiBot】高阶篇

RPA的全称为机器人流程自动化(Robotic Process Automation),是一款软件产品,可模拟人在电脑上的不同系统之间操作行为,替代人在电脑前执行具有规律与重复性高的办公流程。来也科技是中国乃至全球的 RPA+AI 行业领导者,为客户提供变革性的智能自动化解决方案,提升组织生产力和办公效率,释放员工潜力,助力政企实现智能时代的人机协同。UiBot 使用软件技术模拟人工对目标系统(ERP、OA、SAP、浏览器、Excel等各类软件)进行各种操作,实现对企业或个人工作的业务流程自动化,从而大幅降低人力成本的投入,作为替代品更高效、更稳定、更低投入的完成被赋予的工作。

rbf神经网络python预测代码_RBF神经网络预测

%用RBF网络来预测股票走势clcclear%归一化数据input=[0 0 0 0 0 0.0277;0.0177 0.0292 0.0184 0.0122 0.0264 0.0492;0.0374 0.0946 0.0393 ...

weixin_39951419的博客 1889

JSON详细教程

JSON是一种轻量级的数据交换格式,全称为JavaScript Object Notation(JavaScript对象表示法)。它以易于阅读和编写的文本格式来表示结构化数据,常用于在客户端和服务器之间传递数据。 JSON的格式简单、灵活,易于理解和使用。与XML相比,JSON更加轻量级,占用更少的数据空间,并且解析速度更快。因此,它在Web开发中广泛应用于数据传输、配置文件和API交互等方面。

小田是个程序员的博客欢迎你的到来呀~ 5766

VisionMaster -Group循环、数组数据格式化

这里创建一个格式化工具,按照自己想要的模式格式化刚刚输出的数据。因为是检测多个物体,所以这里选择输出的是数组。第一次的模板很不满意,反复调整参数也没好,边缘不整齐,强迫症患者受不了。实测如果输入设置太多,会导致模块失效,所以尽量选择需要的少量参数。这里要打开循环使能,循环数值就是高精度匹配的匹配个数。Group输出设置里选择刚刚建立的数据集。左边是主流程,右边是组合模块内部流程。修改采图这里的曝光值,图像提亮一点。建一个数据集,把想要的数据收集起来。用TCP助手测试一下OK。成功得到了想要的数据。

weixin_69505365的博客 4528

02-基于ART-PI开发板创建USB CDC 虚拟串口设备

本例在ART-PI开发板上,基于RT-Thread 5.0,5虚拟了一个USB32 CDC串口设备。

arm_fan的专栏 1885

JSON教程(非常详细)

之前写过有关C语言JSON库:【C语言开源库】在Clion上使用开源库cJSON; JSON和XML的对比:JSON vs XML,为什么JSON更好? 下面就好好来了解一下JSON。 文章目录JSON是什么?什么是 JSON?JSON 发展史为什么要使用 JSON?JSON 的不足JSON 应该如何存储?什么时候会使用 JSON1) 定义接口2) 序列化3) 生成 Token4) 配置文件总结JSON语法规则JSON 中的键JSON 中的值JSON 与 JavaScript 对象的区别JSON数据类型.

qq_41854911的博客 8845

正交试验minitab

1.创建正交试验 2.根据自己的实验选择水平数和因子数,并选定一个正交表 3.得到正交表 4.填写实验结果 5.进行正交分析 点击结果,点击分析 6.得到分析结果 7.方差分析 选择响应变量与因子,点击确定 得到方差分析的结果 ...

a999999123的博客 1万+

一份简单的JSON教程(个人学习笔记)

json

m0_60980259的博客 1934

TOD和PPS精确时间同步技术

授时

u010783226的专栏 1万+

微波无源器件 功分器1 新型方波导双模无功功分器

本名证明了一种基于有着特定功能的(dedicated)T性匹配元件(散射件)的进化结点的新型波导双模两路功分器的可行性。这个散射件,有着面向三个部分的匹配部分,提供了等效功分并且朝着对应的输出端口传输矩形波导的两个TE10/TE01正交模式。所提出的设计紧凑,易于比例变化并且能够级联来获得。

qq_45245770的博客 1390

JSON(json)详细教程

一、什么是JSON? JSON 是用于存储和传输数据的格式。 JSON 通常用于服务端向网页传递数据 。 JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON JSON 具有自

qq_51366851的博客 9719

OpenDataLab 大模型训练数据集下载记录

大模型 训练数据集

u013558123的博客 3341

JSON 和 cJSON 库入门教程

首先,文章解释了 JSON 是一种轻量级、易于人类阅读和机器解析的数据交换格式。它基于 JavaScript 的一个子集,但独立于语言,由对象(无序键值对,用花括号 {} 包裹)和数组(有序值集合,用方括号 [] 包裹)组成。JSON 支持字符串、数字、布尔值 (true/false)、null、对象和数组等数据类型。 接着,文章重点介绍了 cJSON,一个用标准 ANSI C 编写的超轻量级 JSON 解析器和生成器,非常适合 ESP32 等资源受限的系统。

weixin_52342399的博客 1113

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

JSON-Server 极速入门教程

快速搭建测试环境模拟后端 API进行前端开发测试学习 REST API 概念现在你可以开始使用 JSON-Server 来加速你的开发流程了!

不懂先生的博客 1059

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

JSON Web Token(JWT) 入门教程

阮一峰老师的JSON Web Token(JWT) 入门教程

Jack_Tpy的Java学习之旅 323

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Vue-Json-View 框架入门教程

Vue-Json-View 框架入门教程 1. 项目目录结构及介绍 Vue-Json-View 是一个用于在 Vue.js 应用中展示 JSON 文件的组件。其目录结构如下: . ├── build # 构建脚本目录 │ └── ... ├── dist # 构建输出目录,包含编译后的 JS 和 CSS ├── mock...

gitblog_00131的博客 728

json入门教程

json入门教程 1.简介 JSON是JavaScript Object Notation的缩写,它是一种数据交换格式。JSON实际上是JavaScript的一个子集。 2.数据类型 在JSON中,一共就这么几种数据类型: - number:和JavaScript的number完全一致; - boolean:就是JavaScript的true或false; - strin...

T-dreaming博客 384

Android解析JSON入门教程

基于java操作的JSON入门教程 尽管有许多宣传关于 XML 如何拥有跨平台,跨语言的优势,然而,除非应用于 Web Services,否则,在普通的 Web 应用中,开发者经常为 XML 的解析伤透了脑筋,无论是服务器端生成或处理 XML,还是客户端用 JavaScript 解析 XML,都常常导致复杂的代码,极低的开发效率。实际上,对于大多数 Web 应用来说,他们根本不需要复杂

魔术师 878

JSON 入门教程

JSON 全称JavaScript Object Notation(JavaScript 对象表示法)是一种轻量级、纯文本的数据交换格式;独立于编程语言,前后端、不同语言之间通用;语法借鉴 JS 对象,但有严格语法限制,不是 JS 对象。JSON 主要用来跨程序 / 前后端传递、保存结构化数据,是 web 开发数据交换的通用标准。JSON 是纯文本数据格式,键必须双引号、仅 6 种基础值、无注释、无多余逗号、全英文标点、布尔 /null 小写。,需手动传event获取事件对象。

2503_94205631的博客 285

json11入门教程

Json11,C++ 解析json

ox0080的博客 746

史上最全的JSON入门教程读懂这篇带你玩转JSON

JSON是大家再熟悉不过的一门数据格式了,它具有很多优点,比如占用带宽比较小(格式是压缩的)、js可以通过eval()读取、支持多种语言(C、C++、JAVA、PHP等等),我们日常开发中用的比较多的是对json进行封装和解析,这块内容也是我们必须去掌握的,所以我花了一点时间对json的各种封装个解析做了一个详细的教程,方便初学者快速上手入门 什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。同时也方便了机器进行

zhangbinch的博客 6149

JSON介绍及简单入门教程

JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式,类似 XML但比 XML 更小、更快,更易解析 初识 JSON是Web开发领域最知名的技术权威Douglas Crockford创造     JSON 指的是 JavaScript 对象表示法(JavaScript Ob

小朱 738

JSON Web Token 入门教程

作者:阮一峰 日期:2018年7月23日 JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。 一、跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 1、用户向服务器发送用户名和密码。 2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。 3、服务器向用户返回一个 session_id,写入用户的 Cookie。 4、用户随后的每一次请求,都会通过 Cookie,将 sessi..

心境 250

Json入门教程

尽管有许多宣传关于 XML 如何拥有跨平台,跨语言的优势,然而,除非应用于 Web Services,否则,在普通的 Web 应用中,开发者经常为 XML 的解析伤透了脑筋,无论是服务器端生成或处理 XML,还是客户端用 JavaScript 解析 XML,都常常导致复杂的代码,极低的开发效率。实际上,对于大多数 Web 应用来说,他们根本不需要复杂的 XML 来传输数据,XML 的扩展性很少具有

shifu88的专栏 284
上一篇: Log4j使用教程
下一篇: JSF入门教程
terryzero
博客等级 码龄19年 700粉丝 232原创
评论 22
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值