包括:
JSON概述,
JSON语法规则,
使用JSON(JSON对象,JSON数组,JSON文档与对象的转换)
JSON应用
额外内容(PHP输出JSON数据,解析JSON字符串,客户端如何使用服务器JSON输出)
JSON概述:
JSON:JavaScript Object Notation,JavaScript对象表示法,原本是JavaScript中创建对象的一种语法。
现在,JSON已经从JavaScript中独立出来,作为一种独立的字符串数据表示法,被Java、C#、C++、PHP、OC等几乎所有主流语言所支持。
JSON作为一种
轻量级的文本数据交换格式,已被广泛使用于
存储和交换文本数据领域,作用域XML类似,但比XML更简洁、更快、更容易解析。
JSON语法规则:
JSON语法是JavaScript对象表示法语法的子集:
数据在名称/值对中
数据由逗号分隔
花括号保存对象
方括号保存数组
JSON数据的基本格式是“名称/值”对
"age":35 //等价于js语句 age=35
“名称”应使用
双引号引起来
“值”可以是如下类型:
(1)数字(整数或浮点数)
(2)字符串(使用
双引号)
(3)逻辑值(true或false)
(4)数组(在方括号中)
(5)对象(在花括号中)
(6)null
使用JSON:
JSON对象:
JSON字符串可以描述一个对象。具体语法为:
书写在花括号中。
可以包含任意多个使用逗号分隔的“名称/值”对。
“名称”必须使用双引号括起来,值若是字符串也必须使用双引号括起来。
var jsonTxt='{
"name":"Tom",
"age":35,
"isWorked":true
}';
JSON数组:
JSON字符串还可以描述一个数组,具体语法为:
书写在方括号中。
其中可以包含多个值或对象。
var jsonTxt1=
'[10,true,null,{"x":60,"y":30}]';
var jsonTxt2=
'[
{"name":"Tom","age":35},
{"name":"Joe","age":38},
]';
JSON文档与对象的转换:
使用eval()函数把一段JSON文本字符串解析为一个JavaScript对象:
var jsonTxt='{"x":60,"y":30}';
var jsObj=
eval(
"("+jsonTxt+
")");
把文本放在()中,防止语法错误。
注意:
(1)根据eval()的严格语法要求,其接收的参数只能是string类型,而不能是String类型!
(2)使用eval()将JSON字符串解析为JavaScript对象时,若不添加左右的小括号,则会被解释器理解为一段用大括号包围起来的普通JavaScript代码块,而无法识别为一个对象的声明。
还可以使用JSON.parse(string)方法来解析JSON字符串得到JavaScript对象:
var jsonTxt='{"x":60,"y":30}';
var jsObj=
JSON.parse(jsonTxt);
使用JSON.stringify(jsonObj)方法把JavaScript对象格式化为JSON字符串:
var jsObj={"x":60,"y":30};
console.log(typeof
JSON.stringify(jsObj));
IE7-中的JS解释器不支持这两种方法,可以下载json2.js工具解决此问题。
JSON应用:
使用AJAX解析并返回JSON(比如 级联列表)
额外内容:
PHP输出JSON数据:
可以使用
json_encode()函数将一个PHP数组或对象等数据编码为一个JSON形式的字符串。
在向客户端输出JSON字符串数据之前,需向客户端声明Content-Type响应头。
header('Content-Type:application/json');
$nameArr = array('King','Scott','Smith');
$nameStr = json_encode($nameArr);
echo $nameStr;
索引数组将被编码为JSON数组。
header('Content-Type:application/json');
$empArr = array('id'=>7788,'name'=>'Scott','age'=>35);
$empStr = json_encode($empArr);
echo $empStr;
关联数组将被编码为JSON对象。
解析JSON字符串:
对于客户端请求中提交的或者从文件中读取的JSON字符串,可以使用
json_decode()解析为PHP数组或对象。
/*假设客户端通过表单或AJAX提交了数据
shoeSizeArr = '[37,39,40,41]' */
$str = $_REQUEST['shoeSizeArr'];
$arr = json_decode($str);
var_dump($arr);
PS:array(4){
[0]=>int(37)
[1]=>int(39)
[2]=>int(40)
[3]=>int(41)
}
/*假设客户端通过表单或AJAX提交了数据
queryBook = '{"bname":"java","pdate":2015}' */
$str = $_REQUEST['queryBook'];
$obj = json_decode($str);
var_dump($obj);
echo $obj->bname;
echo $obj->pdate;
PS:object(stdClass)#1 (2){
["bname"]=>string(4)"java"
["pdate"]=>int(2015)
}
PHP中访问对象的成员属性使用->运算符而不是.号
客户端如何使用服务器JSON输出:
若某个服务器端动态页面声明了响应头
Content-Type:application/json且响应主体是
JSON数组或JSON对象,那么该页面就是一个返回了纯数据的页面,而没有庞杂繁复的HTML标签。这样的页面返回的内容一般在客户端可以做如下用途:
被客户端AJAX程序解析,动态的显示在DOM树中。
被Android/iOS App使用,显示在移动应用中。
分享到:
相关推荐
package.json相关内容package.json中的module属性,用于打包工具识别,来进行tree-shaking.在nodejs中,当.js文件最
这个压缩包文件包含的是与JSON处理相关的Java库,通常这样的库能够帮助开发者在Java程序中解析、序列化和操作JSON数据。 JSON库在Java中的应用通常涉及到以下几个方面: 1. **解析JSON**:将JSON字符串转化为Java...
标题 "es从行json文件中查询相关内容" 涉及的是使用Elasticsearch(简称ES)从JSON格式的行文件中检索数据。Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,常用于实时的全文检索、分析和存储。在...
增加函数of_get_sqls_json、of_get_sqls_json1,利用sqlserver snc多查询语句执行接口,一次性执行多条select语句转入到json对象,调用方法参阅demo相关调用示例;增加of_getdwblob、of_setdwblob、of_getdsblob、of...
根据给出的信息,有关JSON的应用手册主要针对在桌面、服务器、网页以及移动应用中应用JSON。该手册包含了80多个配方,这些配方旨在帮助开发者充分利用JSON在各自的应用中。 该手册由Packt Publishing出版,Ray ...
总结来说,JSON是一种通用的数据交换格式,`json.jar`是Java平台上的JSON处理库,而`json data lib`可能是一个包含与JSON相关的工具或类的库。开发者可以利用这些工具轻松地在Java程序中处理JSON数据,实现数据的...
在Java中,为了处理JSON数据,我们需要相关的库,这就是`Json全部jar包`所包含的内容。 `json-lib-2.2.2-jdk15.jar`是其中的一个关键组件,它是Json库的一个实现,主要用于将Java对象转换为JSON格式,反之亦然。这...
1. **实时格式化**:当你在浏览器中打开一个包含JSON数据的URL时,JsonView会自动检测并格式化JSON内容,无需手动操作或安装额外插件。 2. **颜色编码**:JsonView使用不同的颜色对不同类型的JSON值进行区分,如...
2. **JSONView的使用**:安装JSONView扩展后,当浏览器加载到JSON格式的网页时,它会自动格式化JSON数据,以树形结构显示,用户可以方便地展开和折叠节点查看内容。 3. **数据转换**:JSONView可能支持将JSON数据...
使用这些库,开发者可以轻松地在Java程序中处理JSON数据,实现如对象转JSON、JSON转对象、遍历JSON结构、修改JSON内容等操作。在实际项目中,选择哪个库通常取决于具体需求,如性能、易用性、社区支持等因素。对于...
"中国地址json"表明这些JSON文件包含了中国地址结构化的信息,而"中国省份_json_省份jison"则进一步强调了这些文件的核心内容是关于中国省份的数据。 描述中提到“方便echarts绘制使用”,意味着这些JSON文件中的...
标签"json"表明这个主题与Json格式的数据处理有关,而压缩包中的`excel2json`文件可能是该工具的源代码、可执行文件或者相关的文档。为了完成这个转换,用户需要确保已经正确安装了`excel2json`工具,并且CMD可以...
在.NET框架中,C#语言提供了强大的支持来处理JSON数据,这在当今的Web应用程序开发中至关重要,因为JSON已经成为互联网上数据交换的...通过实践这些代码,开发者可以深入理解JSON在C#环境中的应用,并提升相关技能。
在学习 AjaxJson 时,你需要掌握 JavaScript 基础,特别是 DOM 操作和 JSON 相关知识。同时,理解 HTTP 请求的工作原理也很重要。实践是最好的老师,尝试创建自己的实例,不断调试和优化,这样你会更快地掌握 Ajax...
在压缩包文件名称列表中,"Json2ExcleTool"可能是该工具的可执行文件或包含相关资源的文件夹。用户可能需要运行这个文件来启动工具,然后根据提示导入JSON数据、进行网络抓包或解析HTML,最后导出为Excel文件。 总...
7. **权限和别名**:`grantsandsynonyms.sql`文件通常用来授予用户必要的权限并创建别名,以便于不同角色的用户能够方便地访问和操作PL/JSON相关的对象。 8. **附加组件**:`addons`目录可能包含一些扩展功能或者...
本篇文章将深入探讨如何在C#中读取和修改JSON文件,以及相关的库和方法。 首先,C#的标准库.NET Framework并没有内置对JSON的支持,但.NET Core和.NET 5及以上版本引入了System.Text.Json,它是官方推荐的JSON处理...
5. Concourse.json:可能与交通枢纽或集会场所相关,强调连接和汇聚的概念,适合多维度数据分析。 6. Elemental.json:可能包含基础或自然的元素,为报告增添一种原始或纯净的外观。 7. Adjacency.json:可能关注...
然后,使用`TSharedRef< TJsonReader<> >`创建一个JSON阅读器,并用`FJsonSerializer`解析JSON内容: ```cpp TSharedRef<TJsonReader<> > JsonReader = MakeShareable(new FJsonTextReader(JsonContent)); ...
2. Gson:Google开发的Gson库,能够将Java对象转换为对应的JSON字符串,同时也能将JSON内容转换回等效的Java对象。它的使用简单,适合简单的JSON操作。 3. JSON-P (Java API for JSON Processing):这是Java EE的一...