json前端应用

简介: json前端应用

本文主要说明json的基本概念,和一个在Html中使用Json给元素赋值的小例子,属于基础性信息

什么是 JSON ?

  • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
  • JSON 是轻量级的文本数据交换格式
  • JSON 独立于语言 *
  • JSON 具有自我描述性,更易理解

* JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。

相比 XML 的不同之处

  • 没有结束标签
  • 更短
  • 读写的速度更快
  • 能够使用内建的 JavaScript eval() 方法进行解析
  • 使用数组
  • 不使用保留字

为什么使用 JSON?

对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用

JSON 语法规则

JSON 语法是 JavaScript 对象表示法语法的子集。

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

JSON 值

JSON 值可以是:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

JSON 文件

  • JSON 文件的文件类型是 ".json"
  • JSON 文本的 MIME 类型是 "application/json"

---------------------------------------------------------------------------------------------------------

在Html5中使用Json,将Json中的内容给元素赋值,其中涉及CSS样式,JavaScript脚本。具体如下图所示:

具体不多解释,代码如下:

<!DOCTYPE html>
<html>
<head>
    <title>The eightth page</title>
    <style type="text/css">
        #group
        {
            width:400px;
            padding:20px;
            margin:20px;
        }
        input
        {
            margin-left: 10px;
            height: 20px;
        }
        div
        {
            margin-top: 10px;
            height: 20px;
        }
        .t0
        {
            vertical-align: middle;
        }
        input[type="checkbox"]
        {
            vertical-align: middle;
        }
        input[type="radio"]
        {
            vertical-align: middle;
        }
        .t
        {
            height: 20px;
            width: 60px;
            line-height: 20px;
            display: block;
            float: left;
        }
    </style>
    <script type="text/javascript">
        window.onload = function () {
            var txt = {
                "fname": "Alan",
                "fage": 20,
                "flove": ["song", "run", "jump"],
                "fplay": { "basketball": "basketball" },
                "fold": true,
                "fwife": null
            };
            var obj = eval(txt);
            //给文本框复制
            document.getElementById("fname").value = obj.fname;
            document.getElementById("fage").value = obj.fage;
            //给复选框复制
            var objLove = obj.flove;
            var objElements = document.getElementsByName("flove");
            for (var i = 0; i < objLove.length; i++) {
                for (var j = 0; j < objElements.length; j++) {
                    if (objLove[i] == objElements[j].value) {
                        objElements[j].checked = "checked";
                        break;
                    }
                }
            }
            //给单选框复制
            var objPlay = obj.fplay;
            var objPlayElements = document.getElementsByName("fplay");
            for (var i = 0; i < objPlayElements.length; i++) {
                if (objPlayElements[i].value == objPlay.basketball) {
                    objPlayElements[i].checked = "checked";
                    break;
                }
            }
            //给文本框复制
            var old = obj.fold;
            if (old) {
                document.getElementById("fold").value = "very old";
            } else {
                document.getElementById("fold").value = "no old";
            }
            if (obj.fwife == null) {
                document.getElementById("fwife").value = "No wife";
            } else {
                document.getElementById("fwife").value = obj.fwife.ToString();
            }
        }
    </script>
</head>
<body>
    <header>
        <h1>信息录入</h1>
    </header>
    <form name="myForm" id="myForm" action="#" method="post" >
    <fieldset id="group">
    <legend id="group1">Information</legend>
    <div>
        <label class="t"> Name:</label>
        <input type="text" id="fname" />
    </div>
    <div>
        <label class="t"> Age:</label><input type="number" id="fage" />
    </div>
    <div>
        <label class="t"> Love:</label>
        <input type="checkbox" id="chkSong" value="song" name="flove" />
        <label class="t0">Song</label>
        <input type="checkbox" id="chkRun" value="run" name="flove" />
        <label class="t0">Run</label>
        <input type="checkbox" id="chkJum" value="jump" name="flove" />
        <label class="t0">Jump</label></div>
    <div>
        <label class="t"> Play:</label>
        <input type="radio" id="rbFball" value="football" name="fplay" />
        <label class="t0"> FootBall </label>
        <input type="radio" id="tbBall" value="basketball" name="fplay" />
        <label class="t0">BasketBall</label>
    </div>
    <div>
        <label class="t"> Old:</label>
        <input type="text" id="fold" />
    </div>
    <div>
        <label class="t">Wife:</label>
        <input type="text" id="fwife" />
    </div>
    <div>
        <label class="t">DateTime:</label>
        <input type="date"  id="fdatetime" value="目前IE11还不支持datetime类型" />
    </div>
    <div>
        <label class="t">Color:</label>
        <input type="color"  id="fcolor" value="目前IE11还不支持color类型" />
    </div>
    <div>
        <label class="t">Car:</label>
        <input type="text"  id="Color1" list="cars" />
        <datalist id="cars">
            <option value="Bus" />
            <option value="Jeep" />
            <option value="Bench" />
            <option value="BaoMa" />
        </datalist>
    </div>
    <div>
    <input type="submit" value="Submit" id="fsubmit" />
    <input type="reset" value="Reset" id="freset" />
    </div>
    </fieldset>
    </form>
</body>
</html>

备注

早春呈水部张十八员外(其一)

【作者】韩愈【朝代】唐

天街小雨润如酥,草色遥看近却无。

最是一年春好处,绝胜烟柳满皇都。

相关文章
|
2月前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
72 3
|
1月前
|
移动开发 缓存 前端开发
深入理解前端路由:原理、实现与应用
本书《深入理解前端路由:原理、实现与应用》全面解析了前端路由的核心概念、工作原理及其实现方法,结合实际案例探讨了其在现代Web应用中的广泛应用,适合前端开发者和相关技术人员阅读。
|
2月前
|
前端开发 项目管理
Gitflow分支策略及其在前端工程化中的应用
Gitflow 分支策略也并非适用于所有项目。对于一些小型或简单的前端项目,可能会显得过于复杂。在实际应用中,需要根据项目的具体情况和团队的需求进行适当调整和优化。
|
2月前
|
自然语言处理 前端开发 JavaScript
深入理解前端中的 “this” 指针:从基础概念到复杂应用
本文全面解析前端开发中“this”指针的运用,从基本概念入手,逐步探讨其在不同场景下的表现与应用技巧,帮助开发者深入理解并灵活掌握“this”的使用。
|
2月前
|
存储 前端开发 JavaScript
前端中对象的深度应用与最佳实践
前端对象应用涉及在网页开发中使用JavaScript等技术创建和操作对象,以实现动态交互效果。通过定义属性和方法,对象可以封装数据和功能,提升代码的组织性和复用性,是现代Web开发的核心技术之一。
|
2月前
|
前端开发
结合具体案例分析Gitflow分支策略在大型前端项目中的应用优势
通过这个具体案例可以看出,Gitflow 分支策略在大型前端项目中能够提供有条不紊的开发环境,保障项目的稳定性和持续发展。
|
2月前
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
60 5
|
2月前
|
前端开发 开发者
本文将深入探讨 BEM 的概念、原理以及其在前端开发中的应用
BEM(Block-Element-Modifier)是一种前端开发中的命名规范和架构方法,旨在提高代码的可维护性和复用性。通过将界面拆分为独立的模块,BEM 提供了一套清晰的命名规则,增强了代码的结构化和模块化设计,促进了团队协作。本文深入探讨了 BEM 的概念、原理及其在前端开发中的应用,分析了其优势与局限性,为开发者提供了宝贵的参考。
57 8
|
2月前
|
JavaScript 前端开发 测试技术
构建高效可维护的前端应用
构建高效可维护的前端应用
|
2月前
|
编解码 监控 JavaScript
打造高效前端应用
打造高效前端应用
38 1