首页 > 其他分享 >小白新手村冒险之“烤”json串

小白新手村冒险之“烤”json串

时间:2024-11-27 18:05:28浏览次数:6  
标签:新手村 obj name JavaScript json JSON var 小白 序列化

JSON是什么?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但是JSON是独立于语言的文本格式,许多编程语言都可以使用JSON。

JSON的用途

  1. 数据交换:JSON是网络应用中最常用的数据交换格式,常用于前后端之间的数据传输。
  2. 配置文件:JSON文件常用于存储配置信息,因为它易于阅读和编辑。
  3. 存储数据:一些数据库使用JSON格式存储数据,因为它结构清晰,易于查询。

JSON的格式

JSON数据格式支持以下数据类型:

  • 对象:使用花括号 {} 包围,由键值对组成,键和值之间用冒号 : 分隔,键值对之间用逗号 , 分隔。
  • 数组:使用方括号 [] 包围,元素之间用逗号 , 分隔。
  • 字符串:必须用双引号 " 包围。
  • 数字:表示为标准的数值格式。
  • 布尔值truefalse
  • null:表示空值。

JSON的序列化与反序列化

序列化(Serialization)

序列化是将JavaScript对象转换为JSON字符串的过程。在JavaScript中,可以使用 JSON.stringify() 方法来序列化对象。

var obj = {
  name: "Xiaobai",
  age: 30,
  isAdmin: true,
  hobbies: ["reading", "coding"]
};

var jsonString = JSON.stringify(obj);
console.log(jsonString);
// 输出:{"name":"Xiaobai","age":30,"isAdmin":true,"hobbies":["reading","coding"]}

在这个例子中,obj 被转换为了一个JSON字符串 jsonString

反序列化(Deserialization)

反序列化是将JSON字符串转换回JavaScript对象的过程。在JavaScript中,可以使用 JSON.parse() 方法来反序列化字符串。

var jsonString = '{"name":"Xiaobai","age":30,"isAdmin":true,"hobbies":["reading","coding"]}';
var obj = JSON.parse(jsonString);
console.log(obj.name); // 输出:Xiaobai

在这个例子中,JSON字符串 jsonString 被转换回了JavaScript对象 obj

深入理解JSON

JSON与JavaScript对象的区别

虽然JSON基于JavaScript的对象和数组,但它们之间有一些细微的差别:

  • JSON的键必须是双引号包围的字符串。
  • JSON只有 null,没有 undefinedfunction 或其他JavaScript特有的值。
  • JSON的数值不能使用科学记数法或NaN、Infinity等特殊值。
JSON.stringify()的高级用法

JSON.stringify() 方法可以接受额外的参数来美化输出或过滤对象的属性。

var obj = {
  name: "Xiaobai",
  age: 30,
  secret: "hidden"
};

var jsonString = JSON.stringify(obj, ["name", "age"], 2);
console.log(jsonString);
/*
输出:
{
  "name": "Xiaobai",
  "age": 30
}
*/

在这个例子中,JSON.stringify() 方法的第二个参数是一个数组,指定了只序列化 nameage 属性。第三个参数 2 用于美化输出,表示在层级缩进中使用两个空格。

JSON.parse()的错误处理

JSON.parse() 方法在解析无效的JSON字符串时会抛出错误,因此通常需要使用 try...catch 语句来捕获这些错误。

var invalidJsonString = '{"name":"Xiaobai","age":30,"isAdmin":true,"hobbies":["reading","coding"';

try {
  var obj = JSON.parse(invalidJsonString);
} catch (e) {
  console.error("Parsing error:", e.message);
}

在这个例子中,invalidJsonString 是一个无效的JSON字符串,JSON.parse() 会抛出错误,错误信息通过 catch 语句被捕获并输出。

通过理解JSON的序列化与反序列化,你可以更好地在JavaScript中处理数据交换和配置管理。JSON的轻量级和语言无关性使得它成为了现代网络应用中不可或缺的一部分。

标签:新手村,obj,name,JavaScript,json,JSON,var,小白,序列化
From: https://blog.csdn.net/weixin_73334344/article/details/143985011

相关文章

  • 【AIGC】适合小白的Stable Diffusion教程:图生图
    本文主要分为四部分:\1.图生图原理\2.图生图流程介绍\3.随机种子Seed的应用\4.图生图应用场景今天开始讲解SD的「图生图」功能。你一定看到过下面这样的例子,通过原图通过AI绘画加工成自己想要的图片。在Midjourney中叫「垫图」,而在StableDiffusion中我们叫「......
  • 【小白学机器学习35】数据表:整洁数据表,交叉表/列联表,以及两者转化pd.pivot_table()
    目录1虽然这是个很基础的知识,但是我觉得有必要记录下2整洁数据表3交叉数据表的2种形式3.0交叉表的名字3.12维的交叉表3.2用2维表现3维的3.3上述内容,具体的markdown文本4交叉数据表4.1交叉数据表并不整洁4.2但是交叉表也很有用:比如求联合概率+边缘概率4.3......
  • 网络安全(黑客)小白自学必看—最新寒假学习计划
    ......
  • 网络安全(黑客)小白自学必看—最新寒假学习计划
    ......
  • 网络安全(黑客)小白自学必看—最新寒假学习计划
    ......
  • 什么是JSON,有什么特点
    什么是JSON?JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的子集,但独立于语言,被广泛用于服务器与Web应用之间的数据传输。JSON格式最初由DouglasCrockford在2001年提出,并迅速成为互联网上......
  • ReactPress部署指南:为技术小白量身定制
    近期,阮一峰在科技爱好者周刊第325期中推荐了一款开源工具——ReactPress,ReactPress一个基于Next.js的博客和CMS系统,可查看demo站点。(@fecommunity投稿)ReactPress是一个开源的发布平台,它基于React构建,用户可以在支持React和MySQL数据库的服务器上设置自己的博客和......
  • 新手村Day1
    据上次发flag依旧快两个月了,然而我还是能拖则拖,不得不说拖延症是一种很危险的疾病,今天终于打算静下心来把之前看的零零散散的Java教程总结一下,试着回忆一下学到的基础知识点,我学的Java教程是b站的狂神说,这是我大学老师推荐我学的,听了一丢丢的我就觉得受益匪浅,因为秦老师真的是会把......
  • Jenkin window bat批处理脚本如何请求api,获取json对象返回值数据
    需求:在jenkins的windowsbat批处理脚本中,请求一个api返回json数据,然后获取返回值的某个指定key的value直接上脚本:cdC:\workspace\jenkinxx\workspace\job-ta-webgitcheckoutmastergitpulldir::使用curl请求APIcurl-shttp://xx.xx.xx.xx:8088/testapi/getData......
  • Jenkin window bat批处理脚本如何 获取json对象返回值数据
    前两天有这么个小需求:在cmd中运行某测试工具后/请求某个api后,会返回一个json结果,其中有一个参数的值每次都变且经常要用,正常情况复制粘贴就好了,但这个值非常长,配上cmd的标记+粘贴的行为,就很酸爽了。然后就想快速提取这个值,顺着cmd的这个思路,就走上了批处理的道路。借这个机会,简......