`
hiuman
  • 浏览: 52162 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

JSON的相关内容

阅读更多
包括:
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使用,显示在移动应用中。
分享到:
评论

相关推荐

    towersxu#snippets#package.json相关内容1

    package.json相关内容package.json中的module属性,用于打包工具识别,来进行tree-shaking.在nodejs中,当.js文件最

    JSON相关的jar包

    这个压缩包文件包含的是与JSON处理相关的Java库,通常这样的库能够帮助开发者在Java程序中解析、序列化和操作JSON数据。 JSON库在Java中的应用通常涉及到以下几个方面: 1. **解析JSON**:将JSON字符串转化为Java...

    es从行json文件中查询相关内容

    标题 "es从行json文件中查询相关内容" 涉及的是使用Elasticsearch(简称ES)从JSON格式的行文件中检索数据。Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,常用于实时的全文检索、分析和存储。在...

    pb json 生成、解析,dw导入导出json,select-sql转json(20231120更新)

    增加函数of_get_sqls_json、of_get_sqls_json1,利用sqlserver snc多查询语句执行接口,一次性执行多条select语句转入到json对象,调用方法参阅demo相关调用示例;增加of_getdwblob、of_setdwblob、of_getdsblob、of...

    json的应用手册

    根据给出的信息,有关JSON的应用手册主要针对在桌面、服务器、网页以及移动应用中应用JSON。该手册包含了80多个配方,这些配方旨在帮助开发者充分利用JSON在各自的应用中。 该手册由Packt Publishing出版,Ray ...

    json data lib,json.jar,json 资源包

    总结来说,JSON是一种通用的数据交换格式,`json.jar`是Java平台上的JSON处理库,而`json data lib`可能是一个包含与JSON相关的工具或类的库。开发者可以利用这些工具轻松地在Java程序中处理JSON数据,实现数据的...

    Json全部jar包

    在Java中,为了处理JSON数据,我们需要相关的库,这就是`Json全部jar包`所包含的内容。 `json-lib-2.2.2-jdk15.jar`是其中的一个关键组件,它是Json库的一个实现,主要用于将Java对象转换为JSON格式,反之亦然。这...

    JsonView-json格式化工具

    1. **实时格式化**:当你在浏览器中打开一个包含JSON数据的URL时,JsonView会自动检测并格式化JSON内容,无需手动操作或安装额外插件。 2. **颜色编码**:JsonView使用不同的颜色对不同类型的JSON值进行区分,如...

    jsonview,转换json格式

    2. **JSONView的使用**:安装JSONView扩展后,当浏览器加载到JSON格式的网页时,它会自动格式化JSON数据,以树形结构显示,用户可以方便地展开和折叠节点查看内容。 3. **数据转换**:JSONView可能支持将JSON数据...

    java json转换相关jar包

    使用这些库,开发者可以轻松地在Java程序中处理JSON数据,实现如对象转JSON、JSON转对象、遍历JSON结构、修改JSON内容等操作。在实际项目中,选择哪个库通常取决于具体需求,如性能、易用性、社区支持等因素。对于...

    中国各省份json.rar_-baijiahao_JSON_中国地址json_中国省份 json_省份jison

    "中国地址json"表明这些JSON文件包含了中国地址结构化的信息,而"中国省份_json_省份jison"则进一步强调了这些文件的核心内容是关于中国省份的数据。 描述中提到“方便echarts绘制使用”,意味着这些JSON文件中的...

    Excel文件内容转换成Json数据格式

    标签"json"表明这个主题与Json格式的数据处理有关,而压缩包中的`excel2json`文件可能是该工具的源代码、可执行文件或者相关的文档。为了完成这个转换,用户需要确保已经正确安装了`excel2json`工具,并且CMD可以...

    .Net C# Json接口读取实例

    在.NET框架中,C#语言提供了强大的支持来处理JSON数据,这在当今的Web应用程序开发中至关重要,因为JSON已经成为互联网上数据交换的...通过实践这些代码,开发者可以深入理解JSON在C#环境中的应用,并提升相关技能。

    AjaxJson 实例 AjaxJson

    在学习 AjaxJson 时,你需要掌握 JavaScript 基础,特别是 DOM 操作和 JSON 相关知识。同时,理解 HTTP 请求的工作原理也很重要。实践是最好的老师,尝试创建自己的实例,不断调试和优化,这样你会更快地掌握 Ajax...

    Json2ExcleTool_json2excel_Json转换excle存储_

    在压缩包文件名称列表中,"Json2ExcleTool"可能是该工具的可执行文件或包含相关资源的文件夹。用户可能需要运行这个文件来启动工具,然后根据提示导入JSON数据、进行网络抓包或解析HTML,最后导出为Excel文件。 总...

    PowerBI 主题Json文件

    5. Concourse.json:可能与交通枢纽或集会场所相关,强调连接和汇聚的概念,适合多维度数据分析。 6. Elemental.json:可能包含基础或自然的元素,为报告增添一种原始或纯净的外观。 7. Adjacency.json:可能关注...

    PL/JSON,oracle的json包,1.05版

    7. **权限和别名**:`grantsandsynonyms.sql`文件通常用来授予用户必要的权限并创建别名,以便于不同角色的用户能够方便地访问和操作PL/JSON相关的对象。 8. **附加组件**:`addons`目录可能包含一些扩展功能或者...

    C#读取修改Json文件

    本篇文章将深入探讨如何在C#中读取和修改JSON文件,以及相关的库和方法。 首先,C#的标准库.NET Framework并没有内置对JSON的支持,但.NET Core和.NET 5及以上版本引入了System.Text.Json,它是官方推荐的JSON处理...

    ue4 json文件的读取和修改 项目示例

    然后,使用`TSharedRef< TJsonReader<> >`创建一个JSON阅读器,并用`FJsonSerializer`解析JSON内容: ```cpp TSharedRef<TJsonReader<> > JsonReader = MakeShareable(new FJsonTextReader(JsonContent)); ...

    json所需要的jar

    2. Gson:Google开发的Gson库,能够将Java对象转换为对应的JSON字符串,同时也能将JSON内容转换回等效的Java对象。它的使用简单,适合简单的JSON操作。 3. JSON-P (Java API for JSON Processing):这是Java EE的一...

Global site tag (gtag.js) - Google Analytics