文档章节

浅谈Json数据格式

architect刘源源
 architect刘源源
发布于 2018/02/06 18:58
字数 569
阅读 37
收藏 0

我们先来看下w3cschool对json的定义:

JSON:JavaScript 对象表示法(JavaScript Object Notation)。

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

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

 

使用中,json有以下三种结构:

  1. 对象:{"name":"Michael","age":24}
  2. 数组:比如:[{"name":"Michael","age":24},{"name":"Tom","age":25}]
  3. 值:{"name":"Michael", "birthday":{"month":8,"day":26}},类似于对象嵌套对象.

 很多人疑惑{}和[]形式的区别。看到一段很经典的总结:大括号{}用来描述一组“不同类型的无序键值对集合”(每个键值对可以理解为OOP的属性描述),方括号[]用来描述一组“相同类型的有序数据集合”(可对应OOP的数组)

上面的例子中,键都是字符串形式,值可以取任意类型。对于var p1={name:"Michael",age:24},我们称为对象自面量。两者是不同的,例子后面会讲到。

 

访问json数据的两种方法:

复制代码

//例子
var  obj={name:"Michael",age:24};

obj.name;//方式1,和java语言中访问对象的属性是一样的。

alert(obj["name"]) //方式2,和js中数组的访问方式是一样的。

复制代码

 

Json数据字符串化(序列化):

          Json数据是跨平台的,在网络数据传输流程中,json是以文本,即字符串的形式传递的,各种语言对字符串的处理比较统一。而在JS是 对象的形式。

JSON.stringify()将JSON对象转为JSON字符串(序列化);

JSON.parse()将JSON字符串转为JSON对象(反序列化)

  例子:

   

复制代码

<script>

 var  obj={"name":"Michael","age":24};

 var  obj1=JSON.stringify(obj);//注意:json全大写

 

 

 alert(obj);//弹出Object类型;说明是对象

 alert(obj.name);//弹出属性值

 alert(obj1);//弹出转化为字符后的;

 

 var  obj2 = JSON.parse(obj1);

 alert(obj2)//转换后,弹出Object类型;说明已经转化成对象;

</script>

复制代码

 

 

对象字面量的例子:

 

复制代码

<script>

 var  obj={name:"Michael",age:24};

 

 alert(obj);//弹出Object类型;说明是对象

 alert(obj["name"])//alert(obj.name),但是obj[name]不行

 

 var  obj1=JSON.stringify(obj);//注意:json全大写

 alert(obj1);//弹出转化为字符后的;{"name":"Michael","address":24};

 

</script>

复制代码

 

 

这个例子看出,对象字面量的使用方法跟json完全一样。个人以为,可以理解为已经转化成json了。

© 著作权归作者所有

architect刘源源

architect刘源源

粉丝 167
博文 555
码字总数 935372
作品 0
浦东
程序员
私信 提问
浅谈JSON 数据源格式

JSON [ JavaScript Object Notation ]:JavaScript 对象表示法。 它是一种轻量级的数据交换格式。 JSON 在很多场合下作为数据格式比XML 要更加方便。 JSON 的数据由对象、数组和元素等格式组...

长征2号
2017/10/16
0
0
浅谈前端与网络请求

作者:不洗碗工作室 - 张景浩 博客地址:http://michaelcode.cn版权归作者所有,转载请注明出处 toc: 前端 学前端也有一段时间了,想浅谈一下前端与网络请求。谈网络请求,自然绕不开的一个话...

不洗碗工作室
2017/12/08
0
0
浅谈@RequestMapping @ResponseBody 和 @RequestBody 注解的用法与区别

1.@RequestMapping 国际惯例先介绍什么是@RequestMapping,@RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为...

满风
2018/05/15
274
0
最近接触Jersey 浅谈一下

这里用maven 建立Jersey 项目就不说了, 我把pom依赖的文件贴出来 <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId> <version>1.3</version> </depen......

郭克蒙
2014/11/28
1K
0
浅谈MongoDB数据库

浅谈MongoDB数据库 Java操作MongoDB数据库 简介 MongoDB 介绍 MongoDB使用 Java操作MongoDB 总结 相关资料 简介 最近项目中需要分析Http报文,并且需要用数据库保存,刚刚开始打算用Mysql,后...

流水不腐小夏
2017/09/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

作为一个(IT)程序员!聊天没有话题?试试这十二种技巧

首先呢?我是一名程序员,经常性和同事没话题。 因为每天都会有自己的任务要做,程序员对于其他行业来说;是相对来说比较忙的。你会经常看到程序员在发呆、调试密密麻麻代码、红色报错发呆;...

小英子wep
今天
12
0
【SpringBoot】产生背景及简介

一、SpringBoot介绍 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要...

zw965
今天
4
0
简述并发编程分为三个核心问题:分工、同步、互斥。

总的来说,并发编程可以总结为三个核心问题:分工、同步、互斥。 所谓分工指的是如何高效地拆解任务并分配给线程,而同步指的是线程之间如何协作,互斥则是保证同一时刻只允许一个线程访问共...

dust8080
今天
6
0
OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
3.2K
22
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部