JSON实例操作

什么是 JSON ?

JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)。
JSON 是轻量级的文本数据交换格式
JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
JSON 具有自我描述性,更易理解。

JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。

JSON - 简介

<h2>JavaScript 创建 JSON 对象</h2>
<p>
网站名称: <span id="jname"></span><br /> 
网站地址: <span id="jurl"></span><br /> 
网站 slogan: <span id="jslogan"></span><br /> 
</p>
<script>
var JSONObject= {
    "name":"百度",
    "url":"www.baidu.com", 
    "slogan":"学的不仅是技术,更是梦想!"
};               //  var JSONobject
document.getElementById("jname").innerHTML=JSONObject.name 
document.getElementById("jurl").innerHTML=JSONObject.url 
document.getElementById("jslogan").innerHTML=JSONObject.slogan
</script>

在这里插入图片描述

  • 使用 XML
    读取 XML 文档
    使用 XML DOM 来循环遍历文档
    读取值并存储在变量中
  • 使用 JSON
    读取 JSON 字符串
    用 eval() 处理 JSON 字符串

JSON 语法💥

//JSON 名称/值对
"name" : "菜鸟教程"
name = "菜鸟教程"

//JSON 数字
{ "age":30 }

//JSON 对象
{ "name":"菜鸟教程" , "url":"www.runoob.com" }
name = "菜鸟教程"
url = "www.runoob.com"

//JSON 数组
{
    "sites": [
        { "name":"菜鸟教程" , "url":"www.runoob.com" }, 
        { "name":"google" , "url":"www.google.com" }, 
        { "name":"微博" , "url":"www.weibo.com" }
    ]
}

//JSON 布尔值
{ "flag":true }
{ "runoob":null }

JSON 使用 JavaScript 语法

因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。

<h2>JavaScript 创建 JSON 对象</h2>
<p>第一个网站名称: <span id="name1"></span></p> 
<p>第一个网站修改后的名称: <span id="name2"></span></p> 
<script>
var sites = [
	{ "name":"runoob" , "url":"www.runoob.com" }, 
	{ "name":"google" , "url":"www.google.com" }, 
	{ "name":"微博" , "url":"www.weibo.com" }
];

document.getElementById("name1").innerHTML=sites[0].name;
// 修改网站名称
sites[0].name="菜鸟教程";         
document.getElementById("name2").innerHTML=sites[0].name;       
</script>
  • JSON 文件
    JSON 文件的文件类型是 .json
    JSON 文本的 MIME 类型是 application/json

JSON vs XML

JSON 和 XML 都用于接收 web 服务端的数据

{
    "sites": [
    { "name":"菜鸟教程" , "url":"www.runoob.com" }, 
    { "name":"google" , "url":"www.google.com" }, 
    { "name":"微博" , "url":"www.weibo.com" }
    ]
}
<sites>
  <site>
    <name>菜鸟教程</name> <url>www.runoob.com</url>
  </site>
  <site>
    <name>google</name> <url>www.google.com</url>
  </site>
  <site>
    <name>微博</name> <url>www.weibo.com</url>
  </site>
</sites>

最大的不同是:XML 需要使用 XML 解析器来解析,JSON 可以使用标准的 JavaScript 函数来解析。

  • JSON.parse(): 将一个 JSON 字符串转换为 JavaScript 对象。
  • JSON.stringify(): 于将 JavaScript 值转换为 JSON 字符串。

1. 获取 JSON 字符串
2. JSON.Parse 解析 JSON 字符串

JSON 对象

myObj = {
    "name":"runoob",
    "alexa":10000,
    "sites": {
        "site1":"www.runoob.com",
        "site2":"m.runoob.com",
        "site3":"c.runoob.com"
    }
}
//访问
x = myObj.sites.site1;
// 或者
x = myObj.sites["site1"];

//修改
myObj.sites.site1 = "www.google.com";

//删除
delete myObj.sites.site1;
delete myObj.sites["site1"]

JSON 数组

{
"name":"网站",
"num":3,
"sites":[ "Google", "Runoob", "Taobao" ]
}

//访问
x = myObj.sites[0];
//循环
for (i in myObj.sites) {
    x += myObj.sites[i] + "<br>";  
}


JSON.parse()💥

将数据转换为 JavaScript 对象

<p id="demo"></p>
<script>
var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');
document.getElementById("demo").innerHTML = obj.name + ":" + obj.site;
</script>

从服务端接收 JSON 数据💥

我们可以使用 AJAX 从服务器请求 JSON 数据,并解析为 JavaScript 对象

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myObj = JSON.parse(this.responseText);            //转换为js对象
        document.getElementById("demo").innerHTML = myObj.name;
    }
};
xmlhttp.open("GET", "/try/ajax/json_demo.txt", true);
xmlhttp.send();

从服务端接收数组的 JSON 数据

如果从服务端接收的是数组的 JSON 数据,则 JSON.parse 会将其转换为 JavaScript 数组

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();

异常

var text = '{ "name":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.com"}';
var obj = JSON.parse(text, function (key, value) {
    if (key == "initDate") {
        return new Date(value);
    } else {
        return value;
}});
 
document.getElementById("demo").innerHTML = obj.name + "创建日期:" + obj.initDate;

解析函数

JSON 不允许包含函数,但你可以将函数作为字符串存储,之后再将字符串转换为函数。

var text = '{ "name":"Runoob", "alexa":"function () {return 10000;}", "site":"www.runoob.com"}';
var obj = JSON.parse(text);
obj.alexa = eval("(" + obj.alexa + ")");
 
document.getElementById("demo").innerHTML = obj.name + " Alexa 排名:" + obj.alexa();

JSON.stringify()💥

在向服务器发送数据时一般是字符串。
我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。

<p id="demo" > </p>

<script>
var obj = { "name":"runoob", "alexa":10000, "site":"www.runoob.com"};
var myJSON = JSON.stringify(obj);
document.getElementById("demo").innerHTML = myJSON;
</script>

JSON 使用💥

把 JSON 文本转换为 JavaScript 对象

var txt = '{ "sites" : [' +
'{ "name":"菜鸟教程" , "url":"www.runoob.com" },' +
'{ "name":"google" , "url":"www.google.com" },' +
'{ "name":"微博" , "url":"www.weibo.com" } ]}';
 
var obj = eval ("(" + txt + ")");
 
document.getElementById("name").innerHTML=obj.sites[1].name 
document.getElementById("url").innerHTML=obj.sites[1].url
<h2>从 JSON 字符串中创建对象</h2>
<p>
网站名: <span id="name"></span><br> 
网站地址: <span id="url"></span><br> 
</p> 

在这里插入图片描述

JSONP 教程

让网页从别的域名(网站)那获取资料,即跨域读取数据。
jQuery 使用 JSONP

如客户想访问 : https://www.runoob.com/try/ajax/jsonp.php?jsoncallback=callbackFunction。

假设客户期望返回数据:[“customername1”,“customername2”]。

真正返回到客户端的数据显示为: callbackFunction([“customername1”,“customername2”])。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>JSONP 实例</title>
    <script src="https://cdn.static.runoob.com/libs/jquery/1.8.3/jquery.js"></script>    
</head>
<body>
<div id="divCustomers"></div>
<script>
$.getJSON("https://www.runoob.com/try/ajax/jsonp.php?jsoncallback=?", function(data) {
    
    var html = '<ul>';
    for(var i = 0; i < data.length; i++)
    {
        html += '<li>' + data[i] + '</li>';
    }
    html += '</ul>';
    
    $('#divCustomers').html(html); 
});
</script>
</body>
</html>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: JSONJavaScript Object Notation)是一种轻量级的数据交换格式,通常用于存储和传输结构化的数据。 在Python中,我们可以使用内置的`json`模块对JSON数据进行读写操作。下面给出一个简单的案例来说明如何使用Python读写JSON。 首先,我们需要导入`json`模块: ```python import json ``` 假设我们有一个包含学生信息的JSON文件`students.json`,内容如下: ```json { "students": [ { "id": 1, "name": "张三", "age": 18 }, { "id": 2, "name": "李四", "age": 20 }, { "id": 3, "name": "王五", "age": 19 } ] } ``` 首先,我们可以使用`json.load()`函数将JSON文件读取为Python的字典对象: ```python with open('students.json', 'r') as file: data = json.load(file) ``` 现在,`data`变量就包含了JSON文件中的数据。我们可以根据需要对其进行操作,比如获取学生列表: ```python students = data['students'] ``` 我们也可以向JSON文件中写入数据。假设我们有一个新的学生信息要添加到JSON文件中,比如: ```python new_student = { "id": 4, "name": "赵六", "age": 21 } ``` 我们可以先读取JSON文件的当前数据,并在其基础上添加新的学生信息: ```python with open('students.json', 'r') as file: data = json.load(file) data['students'].append(new_student) with open('students.json', 'w') as file: json.dump(data, file) ``` 通过以上步骤,我们成功地将新的学生信息添加到了JSON文件中。 总结起来,通过`json`模块,我们可以轻松读取和写入JSON数据,实现了Python与其他程序或者数据交换的功能。 ### 回答2: 下面是一个使用Python进行JSON读写的简单示例: ```python # 导入json模块 import json # 定义一个字典 data = { "name": "张三", "age": 25, "city": "北京" } # 将字典转换为JSON字符串 json_data = json.dumps(data, ensure_ascii=False) # 打印JSON字符串 print("JSON字符串:", json_data) # 将JSON字符串写入文件 with open("data.json", "w", encoding="utf-8") as file: json.dump(data, file, ensure_ascii=False) # 从文件中读取JSON with open("data.json", "r", encoding="utf-8") as file: json_data = json.load(file) # 打印读取的JSON数据 print("读取的JSON数据:", json_data) # 从JSON字符串解析出字典 data = json.loads(json_data) # 打印解析的字典 print("解析的字典:", data) ``` 这个例子首先定义了一个字典,然后使用`json.dumps()`方法将字典转换为JSON字符串,并打印输出。 接下来,使用`json.dump()`方法将JSON字符串写入文件,文件名为`data.json`。 然后,使用`json.load()`方法从文件中读取JSON数据,并打印输出。 最后,使用`json.loads()`方法将JSON字符串解析为字典,并打印输出。 以上就是一个简单的JSON读写案例。 ### 回答3: Json是一种常用的数据格式,可以在不同的编程语言中进行读写操作。下面是一个用Python读写Json的案例。 假设有一个名为"data.json"的文件,其中存储了一些学生的信息,包括学生的姓名、年龄和成绩。我们可以使用Python的json模块来读取和写入这个文件。 首先,我们需要引入json模块: import json 然后,我们可以使用json模块的loads函数将Json数据读取到Python中: with open("data.json", "r") as file: student = json.load(file) 此时,变量student将包含Json文件中的数据。我们可以通过student["key"]来访问相应的数据项,例如student["name"]来获取学生的姓名。 如果我们想要修改学生的成绩,可以直接对student["score"]进行赋值操作: student["score"] = 90 如果我们想要添加一个新的学生信息,可以通过给student添加新的键值对来实现: student["name"] = "小明" student["age"] = 12 student["score"] = 80 最后,如果我们想要将修改后的数据写入Json文件中,我们可以使用json模块的dump函数: with open("data.json", "w") as file: json.dump(student, file) 这样,我们就完成了将修改后的数据写入到Json文件中的操作。 总结一下,上述案例展示了如何使用Python的json模块进行Json数据的读取和写入。通过这个案例,我们可以看到Json的读写操作非常简单,也非常灵活,适用于很多数据存储和交换的场景。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gary jie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值