json的入门知识,基本操作,语法

JSONJavaScript 对象表示法、独立于语言。JSON 的网络媒体类型( MIME 类型)是 application/jsonJSON 的统一标示符类型(文件类型)是 public.json一种轻量级的文本数据交换格式。仅支持字符串,数值,布尔值,null以及在此基础上的对象和数组。JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 ...
摘要由CSDN通过智能技术生成

个人blog-1: 拾忆生活
个人blog-2: 极简-拾忆生活
欢迎大家来踩,同步更新


JSON

  • JavaScript 对象表示法、独立于语言。
  • JSON 的网络媒体类型( MIME 类型)是 application/json
  • JSON 的统一标示符类型(文件类型)是 public.json
  • 一种轻量级的文本数据交换格式。
  • 仅支持字符串,数值,布尔值,null以及在此基础上的对象和数组。
  • JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。

语法

数据在名称/值对中,由逗号分隔
对象:使用大括号{},每个名称后面跟着一个’:’ 名/值对使用“,”分割。
数组:使用中括号[],数组值使用“,”分割

数据类型

数字:整数或浮点数
{ “age”:30 }


字符串:在双引号""中
{ “flag”:true }


逻辑值:true 或 false


null
{ “runoob”:null }


对象:在大括号{}中
{ “name”:“教程” , “url”:“www.runoob.com” }

  • 对象可以包含多个 key/value(键/值)对
  • key 必须是字符串,value 可以是字符串, 数字, 对象, 数组, 布尔值或 null

例子

var myObj, x;
myObj = { "name":"runoob", "alexa":10000, "site":null };
1.访问对象值
x = myObj.name;         【方法1】  
x = myObj["name"];      【方法2】  
2. 循环访问对象的属性
var myObj = { "name":"runoob", "alexa":10000, "site":null };
for (x in myObj) {
    document.getElementById("demo").innerHTML += x + "<br>";
}
3.循环访问对象的属性值
var myObj = { "name":"runoob", "alexa":10000, "site":null };
for (x in myObj) {
    document.getElementById("demo").innerHTML += myObj[x] + "<br>";
}
4.对象嵌套json对象
var myObj = {
    "name":"runoob",
    "alexa":10000,
    "sites": {
        "site1":"www.runoob.com",
        "site2":"m.runoob.com",
        "site3":"c.runoob.com"
    }
}
5.修改值(点号 . 来修改)
myObj.sites.site1 = "www.google.com";       【方法1】
myObj.sites["site1"] = "www.google.com";    【方法2】
6.删除json对象属性(delete)
delete myObj.sites.site1;                  【方法1】
delete myObj.sites["site1"]                【方法2】

【注意】
delete 运算符并不是彻底删除元素,而是删除它的值,但仍会保留空间
只是将该值置为 undefined,而不会影响数组长度,即将其变为稀疏数组


数组:在中括号[]中

对象属性的值可以是一个数组
JSON,数组值是字符串, 数字, 对象, 数组, 布尔值或 null
JS  ,数组值是以上的 JSON 数据类型,
    也可以是JavaScript 的表达式,包括函数,日期,及 undefined

例子

{
"name":"网站",
"num":3,
"sites":[ "Google", "Runoob", "Taobao" ]
}
1.访问数组

x = myObj.sites[0];

2.循环访问数组
for (i in myObj.sites) {
    x += myObj.sites[i] + "<br>";
}
3.数组嵌套 JSON 对象中的数组
var myObj = {
    "name":"网站",
    "num":3,
    "sites": [
        { "name":"Google", "info":[ "Android", "Google 搜索", "Google 翻译" ] },
        { "name":"Runoob", "info":[ "菜鸟教程", "菜鸟工具", "菜鸟微信" ] },
        { "name":"Taobao", "info":[ "淘宝", "网购" ] }
    ]
}
4.循环访问每个数组
for (i in myObj.sites) {
    x += "<h1>" + myObj.sites[i].name + "</h1>";
    for (j in myObj.sites[i].info) {
        x += myObj.sites[i].info[j] + "<br>";
    }
}
5.修改数组值

myObj.sites[1] = "Github";

6.删除数组元素

delete myObj.sites[1];


1.js对象数组:
var sites = [
    { "name":"runoob" , "url":"www.runoob.com" }, 
    { "name":"google" , "url":"www.google.com" }, 
    { "name":"微博" , "url":"www.weibo.com" }
];
2.访问js对象数组:

sites[0].name;

3.修改js对象数组:

sites[0].name="教程";


函数

一、JSON.parse(text[, reviver])

 1.使用 JSON.parse() 方法将数据转换为 JavaScript 对象
 2.text:文本, reviver:转换结果的自定义函数
 3.接收服务器数据时一般是字符串。

1. 用 于 转 换 数 据 对 象 \color{#0480CA}1.用于转换数据对象 1.
  • 1.从服务器接收了以下数据(对象):
    { "name":"runoob", "alexa":10000, "site":"www.runoob.com" }

  • 2.处理数据转换为 JavaScript 对象:
    var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');

  • 3.访问对象数据:
    document.getElementById("demo").innerHTML = obj.name + ":" + obj.site;

总体代码:
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myObj = JSON.parse(this.responseText);
        document.getElementById("demo").innerHTML = myObj.name;
    }
};
xmlhttp.open("GET", "/try/ajax/json_demo.txt", true);
xmlhttp.send();

【浏览器内建对象:xmlhttp=new XMLHttpRequest();】

2 : 转 换 数 据 数 组 \color{#0480CA}2:转换数据数组 2
  • 从服务器接收了以下数据(数组):
    [ "Google", "Runoob", "Taobao" ]

  • 处理数据转换为 JavaScript 数组:
    document.getElementById("demo").innerHTML = myArr[1];

总体代码:
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myArr = JSON.parse(this.responseText);
        document.getElementById("demo").innerHTML = myArr[1];
    }
};
xmlhttp.open("GET", "/try/ajax/json_demo_array.txt", true);
xmlhttp.send();
3. J S O N 不 能 存 储 D a t e 对 象 \color{#0480CA}3.JSON 不能存储 Date 对象 3.JSONDate
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值