问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

JSON知识详解:从基础结构到实际应用

创作时间:
作者:
@小白创作中心

JSON知识详解:从基础结构到实际应用

引用
1
来源
1.
https://m.php.cn/faq/1223461.html

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本文将详细介绍JSON的基本结构、在JavaScript中的使用方法,以及在.NET中使用Newtonsoft.Json库进行JSON操作的技巧。

JSON基本结构

JSON拥有两种基本结构:对象和数组。

对象结构

对象结构以“{”起始,“}”结束,包含零个或多个由逗号分隔的键值对,键值对之间用冒号分隔。键为字符串,值可以是字符串、数字、布尔值(true/false)、null、对象或数组。

示例:

{
 "key1": "value1",
 "key2": 123,
 "key3": true
}

数组结构

数组结构以“[”起始,“]”结束,包含零个或多个由逗号分隔的值。这些值可以是任何JSON数据类型。

示例:

[
 "value1",
 123,
 true,
 {
 "nestedKey": "nestedValue"
 }
]

区分JSON字符串、JSON对象和普通字符串

在JavaScript中:

  • 普通字符串:用单引号(' ')或双引号(" ")括起来的字符序列,例如:

    var str = 'Hello';
    
  • JSON字符串:符合JSON语法规则的字符串,例如:

    var jsonStr = '{"name": "John", "age": 30}';
    

    注意:它仍然是一个字符串,只是内容符合JSON格式。

  • JSON对象:一个JavaScript对象,其结构与JSON对象相同,例如:

    var jsonObject = { name: "John", age: 30 };
    

    这是JSON字符串解析后的结果。

JavaScript中JSON的使用

JSON是JavaScript的子集,因此在JavaScript中操作JSON非常方便。可以使用点号(.)或方括号([])访问JSON数据。

示例:

var myJSON = {
 "name": "Alice",
 "age": 25,
 "address": {
 "city": "New York"
 }
};
console.log(myJSON.name); // 输出: Alice
console.log(myJSON["age"]); // 输出: 25
console.log(myJSON.address.city); // 输出: New York

// 添加属性
myJSON.country = "USA";

// 修改属性
myJSON.age = 26;

// 删除属性
delete myJSON.address;

// 遍历对象
for (const key in myJSON) {
 console.log(key + ": " + myJSON[key]);
}

.NET中JSON的使用 (使用Newtonsoft.Json)

Newtonsoft.Json (Json.NET) 是一个流行的.NET JSON库。

序列化:将.NET对象转换为JSON字符串

使用 JsonConvert.SerializeObject() 方法:

using Newtonsoft.Json;
// ... your .NET object ...
string jsonString = JsonConvert.SerializeObject(yourObject);

反序列化:将JSON字符串转换为.NET对象

使用 JsonConvert.DeserializeObject() 方法:

using Newtonsoft.Json;
string jsonString = "{ \"name\": \"Bob\", \"age\": 40 }";
YourObjectType myObject = JsonConvert.DeserializeObject<YourObjectType>(jsonString);

使用LINQ to JSON定制JSON数据

LINQ to JSON 提供更精细的JSON操作,允许构建和修改JSON结构。这在需要自定义JSON输出格式时非常有用,例如构建分页响应:

using Newtonsoft.Json.Linq;
JObject response = new JObject(
 new JProperty("total", 100),
 new JProperty("data", new JArray(
 new JObject(new JProperty("id", 1), new JProperty("name", "Item 1")),
 new JObject(new JProperty("id", 2), new JProperty("name", "Item 2"))
 ))
);
string jsonString = response.ToString();

总结

JSON是一种轻量级的数据交换格式,在JavaScript和.NET等多种编程语言中都有广泛应用。熟练掌握JSON的结构和使用方法,对于构建高效的Web应用程序至关重要。选择合适的库(如Newtonsoft.Json)可以简化.NET中的JSON操作。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号