JSON的基本操作

    xiaoxiao2021-12-10  8

    除却特别标注颜色的模块,其他的都是一些饶舌的官腔,可忽略...

    一:简介

    JSON:JavaScript 对象表示法(JavaScript Object Notation).

    二:作用

    JSON 是存储和交换文本信息的语法.类似 XML.

    类似 XML

    JSON 是纯文本JSON 具有"自我描述性"(人类可读)JSON 具有层级结构(值中存在值)JSON 可通过 JavaScript 进行解析JSON 数据可使用 AJAX 进行传输

    相比 XML 的不同之处

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

    三:好处

    JSON 比 XML 更小、更快、更易解析.JSON 具有自我描述性,更易于理解.JSON (独立于语言它使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台.JSON 解析器和 JSON 库支持许多不同的编程语言).为什么使用 JSON?

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

    使用 XML

    读取 XML 文档使用 XML DOM 来循环遍历文档读取值并存储在变量中

    使用 JSON

    读取 JSON 字符串用 eval() 处理 JSON 字符串

    四:

    JSON - 转换为 JavaScript 对象

    JSON 文本格式在语法上与创建 JavaScript 对象的代码是相同的.

    由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象.

    <html> <body> <h2>在 JavaScript 中创建 JSON 对象</h2> <p> Name: <span id="jname"></span><br /> Age: <span id="jage"></span><br /> Address: <span id="jstreet"></span><br /> Phone: <span id="jphone"></span><br /> </p> <script type="text/javascript"> var JSONObject= { "name":"Bill Gates", "street":"Fifth Avenue New York 666", "age":"56s", "phone":"555 1234567"}; document.getElementById("jname").innerHTML=JSONObject.name document.getElementById("jage").innerHTML=JSONObject.age document.getElementById("jstreet").innerHTML=JSONObject.street document.getElementById("jphone").innerHTML=JSONObject.phone </script> </body> </html>

    运行结果:

    JSON 语法:

    一:介绍

    JSON 语法是 JavaScript 语法的子集

    二:语法规则

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

    例子:

    "firstName":"XiaoHui"

    等同于 JavaScript 的写法:

    firstName = "XiaoHui";

    JSON 值

    JSON 值可以是:

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

    JSON 对象

    {"firstName":"XiaoHui","age":20}

    JSON 数组

    数组可包含多个对象

    { "employees":[ {"firstName":"Bill","lastName":"Gates"}, {"firstName":"George","lastName":"Bush"}, {"firstName":"Thomas","lastName":"Gartes"} ] } 在上面的例子中,对象 "employees" 是包含三个对象的数组。每个对象代表一条关于某人(有姓和名)的记录。

    JSON 使用 JavaScript 语法

    <html> <body> <h2>通过 JSON 字符串来创建对象</h3> <p>First Name: <span id="fname"></span></p> <script type="text/javascript"> var employees = [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName": "Carter" } ]; employees[1].firstName="Jobs"; document.getElementById("fname").innerHTML=employees[1].firstName; </script> </body> </html>

    结果

    通过 JSON 字符串来创建对象 First Name: Jobs

    JSON 文件

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

    使用  JavaScript 的 eval 函数将 JSON 文本转换为 JavaScript 对象

    <html> <body> <h2>在 javascript 中创建 JSON 对象</h2> <p> NAME:<SPAN ID="JNAME"></SPAN><BR/> AGE:<SPAN ID="JAGE"></SPAN><BR/> ADDRESS:<SPAN ID="JSTREET"></SPAN><BR/> </p> <SCRIPT TYPE="TEXT/JAVASCRIPT"> var JSONOBJECT='{'+ '"LoveAll":['+ '{"NAME":"the one data =>九上","AGE":1,"STREET":"the one data = >west"},'+ '{"NAME":"HT","AGE":"这是第二条数据","STREET":"data"}'+ ']'+ '}'; var obj = eval("("+JSONOBJECT+")"); document.getElementById("JNAME").innerHTML=obj.LoveAll[0].NAME; document.getElementById("JAGE").innerHTML=obj.LoveAll[1].AGE; document.getElementById("JSTREET").innerHTML=obj.LoveAll[0].STREET; </SCRIPT> </body> </html> 结果:

    在 javascript 中创建 JSON 对象 NAME:the one data =>九上 AGE:这是第二条数据 ADDRESS:this one data = >west eval() 函数可编译执行任何 JavaScript 代码,这隐藏了一个潜在安全安全问题.

    使用 JSON 解析器将 JSON 转换为  JavaScript 对象是更安全的做法, JSON 解析器只能识别 JSON 文本,而不会编译脚本.

    <html> <body> <h2>在 javascript 中创建 JSON 对象</h2> <p> NAME:<SPAN ID="JNAME"></SPAN><BR/> AGE:<SPAN ID="JAGE"></SPAN><BR/> ADDRESS:<SPAN ID="JSTREET"></SPAN><BR/> </p> <SCRIPT TYPE="TEXT/JAVASCRIPT"> var JSONOBJECT='{'+ '"LoveAll":['+ '{"NAME":"the one data =>九上","AGE":1,"STREET":"the one data = >west"},'+ '{"NAME":"HT","AGE":"这是第二条数据","STREET":"data"}'+ ']'+ '}'; //var obj = eval("("+JSONOBJECT+")"); var obj = JSON.parse(JSONOBJECT); document.getElementById("JNAME").innerHTML=obj.LoveAll[0].NAME; document.getElementById("JAGE").innerHTML=obj.LoveAll[1].AGE; document.getElementById("JSTREET").innerHTML=obj.LoveAll[0].STREET; </SCRIPT> </body> </html>

    Java 生成 JSON 数据 :

    package jTest; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public class testJson { public static void main(String[] args) { // TODO Auto-generated method stub JSONObject jsonObject = new JSONObject();//JSON 格式 JSONArray array = new JSONArray();//JSON 数组格式 JSONObject json = new JSONObject(); try { json.put("name", "xiaohui"); json.put("sex", "girl"); array.add(json); jsonObject.put("test", array); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(jsonObject.toString()); } }

    转载请注明原文地址: https://ju.6miu.com/read-700240.html

    最新回复(0)