什么是JSON对象
1.什么是json?
JSON全称是JavaScript Object Notation,是一种轻量级的数据交换格式。JSON 与XML具有相同的特性,是一种数据存储格式,但是JSON相比XML 更易于人编写和阅读,更易于生成和解析。
2.JSON的语法规则:
1)数据以名称/值对的形式保存,名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值,如 :"firstName" : "John"。JSON的值可以是数字、字符串、null、true、false、数组或对象。
2)数据有都好分隔
3)花括号保存对象,对象可以包含多个名/值对。
4)方括号保存数组,数组可以包含多个对象。
5)JSON文件:
- JSON 文件的文件类型是 ".json"
- JSON 文本的 MIME 类型是 "application/json"
3.JSON 的两种结构:
1)键值对形式,即Name-Value对的结构结构集合(无序的 )。如:{name1:value1.name2:value2,...};
{"name":"小明","age":"12"}
2)Array(有序的):一组有序的数据列表。例如:[value1,value2,value3,.....],其中,值可以是双引号引起来的字符串(string)、数值(number)、true、false、null、对象(object)或者数组(Array),这些结构都是可以嵌套的。如:
例一:对象中可以包含数组
{"root":[{"id":"001","name":"小红"},{"id":"002","name":"小明"},{"id":"003","name":"小丽"}],"total":3,"success":true}
例二:也可以对象嵌套子对象,子对象再嵌套数组:
{"memberList":{"lists":[{"id":"001","name":"小红"},{"id":"002","name":"小明"},{"id":"003","name":"小丽"}]}}
例三:数组中可以包含对象:
[{"id":"001","name":"小红"},{"id":"002","name":"小明"},{"id":"003","name":"小丽"},........]
4.JSON 的取值方式和修改方式:
如:
var employees = [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }
];
取值:employees[0].lastName
修改数据:employees[0].lastName="Jobs"
5.JSON与字符串之间的转化方法:
JSON转换为字符串(string)格式:var string=JSON.stringify(obj);
将Json字符串转换为JSON:
(1)var data=JSON.parse(string);
function strToJson(){
return JSON.parse(str);
}
使用JSON.parse需严格遵守JSON规范,如属性都需要用引号引起来,否则会出错,如下:
var str = '{name:"jack"}';
var obj = JSON.parse(str); // --> parse error
name没有用引号引起来,使用JSON.parse所有浏览器中均抛异常,解析失败。(下面这两种方式则没有问题)
(2)eval(string);
例如:function myEval(){
var str='{"id":"001","name":"小明","age":10}';
var obj=eval('('+str+')');
alert(obj.toJSONString());
}
(3) new Function形式
function strToJson(str){
var json=(new Function("return"+str))();
}
(4)jQuery中也有将字符串转为JSON格式的方法jQuery.parseJSON( json ),接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript (JSON)对象
什么是JSON对象的更多相关文章
- 一种简单,轻量,灵活的C#对象转Json对象的方案(续)
本文参考资料 一种简单,轻量,灵活的C#对象转Json对象的方案 [源码]Literacy 快速反射读写对象属性,字段 一段废话 之前我已经介绍了这个方案的名称为JsonBuilder,这套方案最大的 ...
- jQuery中的$.extend方法来扩展JSON对象及合并,方便调用对象方法
$.extend方法可以扩展JSON对象,用一个或多个其他对象来扩展一个对象,返回被扩展的对象. 例一 合并 settings 和 options,修改并返回 settings var setting ...
- Json对象与Json字符串互转(4种转换方式)
Json字符与Json对象的相互转换方式有很多,接下来将为大家一一介绍下,感兴趣的朋友可以参考下哈,希望可以帮助到你 1>jQuery插件支持的转换方式: 复制代码代码如下: $.parseJS ...
- js压缩xml字符串,将xml字符串转换为xml对象,将xml对象转换为json对象
/** * 压缩xml字符串 */ function compressXmlStr(str){ var prefix, suffix; var i = str.indexOf("\r&quo ...
- js中的json对象和字符串之间的转化
字符串转对象(strJSON代表json字符串) var obj = eval(strJSON); var obj = strJSON.parseJSON(); var obj = JSO ...
- jQuery中json对象与json字符串互换
json字符串转json对象:jQuery.parseJSON(jsonStr); json对象转json字符串:JSON.stringify(jsonObj); 根据“|”把字符串变成数组.spli ...
- Spring MVC学习笔记——返回JSON对象
1.想要GET请求返回JSON对象,首先需要导入jackson-all-1.9.4.jar包 2.在控制器中添加不同的show()方法 //show()方法返回JSON对象 @RequestMappi ...
- JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString
JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString 如下示例: 直接写的a1就是一个Json对象,a2 就是一个Json对象字符串; 通 ...
- JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使用,原型继承与原型链
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- 深入理解JSON对象
× 目录 [1]语法规则 [2]stringify [3]parse[4]eval 前面的话 json(javascript object notation)全称是javascript对象表示法,它是 ...
随机推荐
- hdu2368Alfredo's Pizza Restaurant
Problem Description Traditionally after the Local Contest, judges and contestants go to their favour ...
- [Linked List]Remove Duplicates from Sorted List II
Total Accepted: 59433 Total Submissions: 230628 Difficulty: Medium Given a sorted linked list, delet ...
- Android Activity之 setContentView()总结
从一开始hello world的第一个安卓应用开始,Activity 自动生成,布局自动生成,直接修改布局,在Activity中,findviewById()找到view,然后处理相应的业务逻辑即可, ...
- Keil MDK下如何设置非零初始化变量
一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始 ...
- 用sql语句按周、按月、按季、按年统
原文地址:http://hi.baidu.com/%BD%F0%D3%F1kl_y/blog/item/1c368ffba9388476024f5645.html --按mySql语法统计按周,月,季 ...
- 关于Qt的灵异错误
今天用Qt编写了一个小程序,在运行的时候会报如下错误: ******SgAppenderImpl::SetImeSdkVer_begin ******SgAppenderImpl::SetImeSdk ...
- RBF network
1.radial basis function RBF表示某种距离,$\mu_m$为中心点,相当于将点$x$到中心点的某种距离作为特征转换 Output方法可以根据需求任意选取(比如使用SVM,log ...
- [Leetcode][Python]37: Sudoku Solver
# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 37: Sudoku Solverhttps://oj.leetcode.co ...
- iOS 性能测试 - FBMemoryProfiler
FBMemoryProfiler 是Facebook开源的一款用于分析iOS内存使用和检测循环引用的工具库. 脑补:http://www.cocoachina.com/ios/20160421/159 ...
- visibleViewController和topViewController 获取当前显示的页面
原文:http://blog.sina.com.cn/s/blog_881ed8500102vo38.html UINavigationController 中有visibleViewControll ...