学习json

本文讲解了JSON的基础概念、格式规则,以及如何在JavaScript中定义和访问JSON对象。通过实例演示了如何通过`JSON.parse()`和`JSON.stringify()`操作数据。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			/**
			 * 1、什么是json,
			 * JavaScript  Object Notation (js标记对象),是一种轻量级的数据交换格式。
			 * 轻量级:体现在json的体积,虽然很小的体积能表换的数据很多。
			 * 2、json是以对象的形式存在的。
			 * 
			 * 3、在现在的开发中,能够进行数据交换格式的,包括两个
			 * 	json   XML
			 * 
			 * 4、怎么定义json格式的对象,怎么访问对象的属性呢
			 *    var jsonObj = {
					"属性名" : 属性值,
					"属性名" : 属性值,
					"属性名" : 属性值,
					"属性名" : 属性值,
					"属性名" : 属性值,
					...
					
					属性值可以是任意类型
					
					
					注意:在js中
						
						[] 是数组对象
						{} 是json对象
						
				 
			 }
			 */
			var emp{
				"emp":725,
				"ename":52,
				"sal":78952,
					//这是json对象哦
			}
			
			
			//怎么访问对象的属性
			// 两种访问方式.
			
			// json是一种无类型的对象,直接用大括号包起来就是一个json对象.
			
		// 这样创建的是对象:
			// function Person(age,name){
			// 		this.age = age || void 0;                    //void 0 相当于 undefined  ,,自己设置好undefined更踏实
			// 		this.name = name || void 0;
			// 		this.print = function(){                      //为Person类添加一个方法
			// 			console.log(this.age);                    //输出Person类的age
			// 			console.log(this.name);                  //输出Person类的name
			// 		};
			// 	};
			
			
			
			console.log(emp.sal);
			console.log(emp["sal"])
			
		</script>
	</body>
</html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			var address = {
				"city":"beijing",
				"street":"daxing",
			}
			var user = {
				// "属性名":"属性值",
				"name":"张三",
				"age":"18.5",
				"sal":"26000",
				"address":address,
			}
			
			var user = {
				// "属性名":"属性值",
				"name":"张三",
				"age":"18.5",
				"sal":"26000",
				"address":{
					"city":"龙岗",
					"工作":"程序员",
				}
			}
			
			//张三住在那个城市呢,
			console.log(user.name + "居住在" + user.address);
		</script>
	</body>
</html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			var students = {
				"total":3,
				"data":[{"name":"chen","age":"20"},{"name":"wang","age":"50"},{"name":"zhu","age":"30"}]
                   }
				console.log("总人数:" + students.total);
				
				var ss = students.data;
				for(var i = 0;i< ss.length;i++){
					var s = ss[i];
					console.log("名字" + s.name +"," + s.age);
				}
		</script>
	</body>
</html>

 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<!-- 1、java和javascript两个语言怎么交换数据呢?
			可以使用json格式的字符串,json就是一种轻量级的数据交换格式。
			2、java的JDBC连接数据库查询数据,然后将查询的数据拼接成json格式的字符串,然后将字符串传给javascript
			,javascript将其转换成json对象,然后就能从json对象中去数据了,这样就完成了数据的交换。
			
			取数据就是点点点。
		 -->
		 
		 <script type="text/javascript">
		 	var fromJavaJson = "{\"name\":\"zhangsan\",\"age\":21}";//这个是一个字符串.
			//需要将json格式的字符串转换成json对象
			window.eval("var stu=" + fromJavaJson);
			console.log(stu.name+","+ stu.age);
			//转换json对象的目的就是为了取其中的数据.
		 </script>
	</body>
</html>

1. JSON 是什么?

  • JSON,全称是 JavaScript Object Notation,即 JavaScript对象标记法。
  • 可以理解成js对象的一个字符串形式
  • 2. JSON 的语法规则是怎样的?
  • JSON 的语法规则十分简单,可称得上“优雅完美”,总结起来有:

    数组(Array)用方括号(“[]”)表示。
    对象(0bject)用大括号(“{}”)表示。
    名称/值对(name/value)组合成数组和对象。
    名称(name)置于双引号中,值(value)有字符串、数值、布尔值、null、对象和数组。
    并列的数据之间用逗号(“,”)分隔。。

  •  

     取对象里面的值:

  • key[0].name.    就像对象里面的一样,下面从0开始。

 

        要实现从JSON字符串转换为JS对象,使用 JSON.parse() 方法:

        要实现从JS对象转换为JSON字符串,使用 JSON.stringify() 方法:

字符串(string)的规则如下:

  1. 英文双引号括起来,不能用单引号,也不能没有。
  2. 字符串中不能单独出现双引号()和右斜杠(“\")。
  3. 如果要打双引号或右斜杠,需要使用“右斜杠+字符”的形式,例如\”\\,其它的转义字符也是如此字符串的概念图。
{
"string":"\\ \" "
}
<script>
//先创建一个javascript对象;
        var obj = {
            name: "兮动人",
            age: 22
        };
//对比json对象。
	var emp{
				"emp":725,
				"ename":52,
				"sal":78952,
					//这是json对象哦
			}
        console.log(obj);
//将对象转换成json格式;
        var jsonstr = JSON.stringify(obj,fun);

        function fun(name,value) {
            if (name=="age")
                value = 18;
                return value;
         }

        console.log(jsonstr)

</script>

<think>好的,我需要帮助用户开始学习JSON格式及其解析方法。首先,我需要确保回答结构清晰,分步骤讲解,同时引用提供的参考资料。根据用户提供的引用,有三个来源:Python、Java和C++的JSON处理。我应该涵盖这三个方面,但可能先介绍JSON的基础知识,然后分别讲解不同语言的解析方法。 首先,JSON是什么?它是一种轻量级的数据交换格式,结构包括对象和数组,键值对使用冒号分隔,数据由逗号分隔,这些基础内容需要解释清楚。然后,可以提到它的应用场景,比如Web前后端通信、配置文件等,这样用户能明白学习JSON的重要性。 接下来,用户需要学习解析方法。根据引用,Python使用json模块,Java可能用Jackson或Gson,C++用JsonCpp。我需要分别简要说明这三种语言的解析步骤,并给出示例代码片段。例如,在Python中,json.loads和json.dumps的用法;Java中使用IDEA转换对象和JSON;C++的JsonCpp库配置和基本用法。 然后,生成相关问题,可能涉及JSON语法规则、不同语言库的选择、处理复杂结构的方法,以及常见错误处理。这些问题需要自然,帮助用户深入思考。 同时,要遵循用户给出的格式要求:行内公式用$...$,独立公式单独成段。不过在这个问题中可能不太涉及数学公式,但需要检查是否有需要的地方,比如数据结构的表示可能需要使用LaTeX,例如数组或对象的结构。例如,JSON对象可以表示为:$$\{ "key": "value" \}$$,数组为$$[1, 2, 3]$$,确保符合格式要求。 另外,注意引用标识要放在引用内容的末尾,如引用[^1]、[^2]、[^3]。需要确认每个引用对应的内容,比如引用1是Python的json.loads,引用2是Java的转换,引用3是C++的JsonCpp。在相应的部分后面添加引用标识。 最后,确保使用中文回答,语言流畅,结构清晰,分步骤说明,代码示例正确,并且相关问题相关且有助于用户进一步学习。</think>### 如何开始学习 JSON 格式及解析方法 #### 1. **理解 JSON 的基本概念** JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用键值对结构表示数据,语法简洁且易于读写。其核心规则包括: - 数据以`键: 值`形式表示,键名用双引号包裹,例如:`"name": "Alice"`。 - 值可以是字符串、数字、布尔值、数组(用`[...]`表示)、对象(用`{...}`表示)或`null`。 - 数据层级通过逗号分隔,例如: ```json { "name": "Bob", "age": 30, "hobbies": ["reading", "coding"] } ``` #### 2. **学习 JSON 的语法规则** - **对象**:用花括号包裹,键值对之间用逗号分隔,例如:$$\{ "key1": "value1", "key2": 2 \}$$。 - **数组**:用方括号包裹,元素之间用逗号分隔,例如:$$[1, "text", true]$$。 - **嵌套结构**:支持对象和数组的嵌套,例如: ```json { "user": { "id": 1, "tags": ["admin", "developer"] } } ``` #### 3. **掌握不同编程语言的 JSON 解析方法** ##### **Python** 使用内置的`json`库实现解析与生成: - **解析 JSON 字符串**:`json.loads()`将字符串转换为字典。 ```python import json json_str = '{"name": "Alice", "age": 25}' data = json.loads(json_str) # 输出:{'name': 'Alice', 'age': 25} ``` - **生成 JSON 字符串**:`json.dumps()`将字典转换为字符串。 ##### **Java** 常用库如`Jackson`或`Gson`实现对象与 JSON 的转换: - **对象转 JSON**: ```java ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(userObject); ``` - **JSON 转对象**: ```java User user = mapper.readValue(jsonString, User.class); ``` 具体配置可参考 IDE 插件辅助生成代码。 ##### **C++** 使用`JsonCpp`库进行解析: 1. **引入库**:下载并配置头文件与链接库[^3]。 2. **解析 JSON 文件**: ```cpp Json::Value root; std::ifstream file("data.json"); file >> root; // 从文件读取 std::string name = root["name"].asString(); ``` #### 4. **实践应用场景** - **Web 开发**:前后端通过 JSON 传输数据(如 REST API)。 - **配置文件**:用 JSON 存储应用设置(如 VS Code 的用户配置)。 - **数据存储**:NoSQL 数据库(如 MongoDB)支持 JSON 格式文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值