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>

备注

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

【作者】韩愈【朝代】唐

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

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

相关文章
|
5天前
|
缓存 监控 前端开发
【Flutter 前端技术开发专栏】Flutter 应用的启动优化策略
【4月更文挑战第30天】本文探讨了Flutter应用启动优化策略,包括理解启动过程、资源加载优化、减少初始化工作、界面布局简化、异步初始化、预加载关键数据、性能监控分析以及案例和未来优化方向。通过这些方法,可以缩短启动时间,提升用户体验。使用Flutter DevTools等工具可助于识别和解决性能瓶颈,实现持续优化。
【Flutter 前端技术开发专栏】Flutter 应用的启动优化策略
|
3天前
|
JSON 前端开发 JavaScript
前端使用lottie-web,使用AE导出的JSON动画贴心教程
前端使用lottie-web,使用AE导出的JSON动画贴心教程
|
5天前
|
Dart 前端开发 开发工具
【Flutter前端技术开发专栏】Flutter入门指南:搭建开发环境与第一个应用
【4月更文挑战第30天】本文介绍了Flutter SDK的安装和配置过程,以及如何创建并运行第一个Flutter应用。首先确保安装了Dart SDK和Flutter SDK,支持macOS、Linux和Windows。安装完成后,设置环境变量,然后通过`flutter doctor`验证安装。接着,使用`flutter create`命令创建新项目,进入项目目录并运行`flutter run`启动应用。在`main.dart`中修改代码以自定义应用。Flutter支持热重载和DevTools调试。本文为Flutter初学者提供了快速入门的指导。
【Flutter前端技术开发专栏】Flutter入门指南:搭建开发环境与第一个应用
|
2天前
|
JSON 前端开发 JavaScript
前端 JS 经典:JSON 对象
前端 JS 经典:JSON 对象
8 0
|
3天前
|
前端开发 Java Go
从前端到后端:构建现代化Web应用的技术实践
本文将介绍如何通过前端和后端技术相结合,构建现代化Web应用的技术实践。我们将探讨前端开发、后端架构以及多种编程语言(如Java、Python、C、PHP、Go)在构建高效、可扩展的Web应用中的应用。
|
3天前
|
前端开发 JavaScript 测试技术
第八章(应用场景篇) 中大型项目的解构:从单体应用到微前端
第八章(应用场景篇) 中大型项目的解构:从单体应用到微前端
|
3天前
|
Web App开发 前端开发 JavaScript
构建跨浏览器兼容的前端应用:技术实践与挑战
【5月更文挑战第16天】构建跨浏览器兼容的前端应用是应对浏览器差异和多样性的挑战。使用现代框架(如React、Vue)能自动转换代码,编写可移植的Web标准代码,结合浏览器兼容性测试工具和Polyfill解决旧浏览器支持问题。关注浏览器更新,应对性能、API差异和样式问题,采用渐进增强、条件判断和CSS Reset策略确保应用在各种浏览器上运行良好。
|
4天前
|
前端开发 JavaScript Java
浅谈企业级前端应用中的组件概念和具体的应用
浅谈企业级前端应用中的组件概念和具体的应用
10 1
|
5天前
|
JSON JavaScript 前端开发
vue的 blob文件下载文件时,后端自定义异常,并返回json错误提示信息,前端捕获信息并展示给用户
vue的 blob文件下载文件时,后端自定义异常,并返回json错误提示信息,前端捕获信息并展示给用户
|
5天前
|
XML JSON API
转Android上基于JSON的数据交互应用
转Android上基于JSON的数据交互应用
11 1

热门文章

最新文章