首页 > 其他分享 >JSON

JSON

时间:2024-10-21 10:00:04浏览次数:8  
标签:console name JavaScript objJSONString JSON var

◼ 在目前的开发中,JSON是一种非常重要的数据格式,它并不是编程语言,而是一种可以在服务器和客户端之间传输的数据格式。
◼ JSON的全称是JavaScript Object Notation(JavaScript对象符号):
    JSON是由Douglas Crockford构想和设计的一种轻量级资料交换格式,算是JavaScript的一个子集;
    但是虽然JSON被提出来的时候是主要应用JavaScript中,但是目前已经独立于编程语言,可以在各个编程语言中使用;
    很多编程语言都实现了将JSON转成对应模型的方式;
◼ 其他的传输格式:
    XML:在早期的网络传输中主要是使用XML来进行数据交换的,但是这种格式在解析、传输等各方面都弱于JSON,所以目前已经很
    少在被使用了;
    Protobuf:另外一个在网络传输中目前已经越来越多使用的传输格式是protobuf,但是直到2021年的3.x版本才支持JavaScript,所
    以目前在前端使用的较少;
◼ 目前JSON被使用的场景也越来越多:
    网络数据的传输JSON数据;
    项目的某些配置文件;
    非关系型数据库(NoSQL)将json作为存储格式;

JSON基本语法

◼ JSON的顶层支持三种类型的值:
    简单值:数字(Number)、字符串(String,不支持单引号)、布尔类型(Boolean)、null类型;
    对象值:由key、value组成,key是字符串类型,并且必须添加双引号,值可以是简单值、对象值、数组值;
    数组值:数组的值可以是简单值、对象值、数组值;

例如:

123

{
"name":"hdc",
"age":"21",
"friend":{
"name":"kebo",
}
}
数组值
[
123,
"hdc",
{
"name":"kebo"
}
]

JSON序列化

◼ 某些情况下我们希望将JavaScript中的复杂类型转化成JSON格式的字符串,这样方便对其进行处理:
  比如我们希望将一个对象保存到localStorage中;
  但是如果我们直接存放一个对象,这个对象会被转化成[object Object] 格式的字符串,并不是我们想要的结果;
  info	[object Object]
◼ 那么上面的代码我们可以通过如下的方法来使用:
  // 1.将obj对象进行序列化
  var objJSONString = JSON.stringify(obj)
  console.log(objJSONString)
  // 2.将对象存储到localStorage
  localStorage.setItem("info",objJSONString)
var item =  localStorage.getItem("info")
  console.log(typeof item)

  // 3.将字符串转为对象(反序列化)
  var newObj = JSON.parse(item)
  console.log(newObj)

Stringify的参数replace

 ◼ JSON.stringify() 方法将一个 JavaScript 对象或值转换为 JSON 字符串:
  如果指定了一个replacer 函数,则可以选择性地替换值;
  如果指定的replacer 是数组,则可选择性地仅包含数组指定的属性;
  // 1.replacer参数
// var objJSONString = JSON.stringify(obj,function(key,value){
  
//   if (key === "name" ){
//     return "webKing"
//   }
//   return value
// },"")
// 2.space参数  
// var objJSONString = JSON.stringify(obj,null,4)
// console.log(objJSONString)
// 3.如果对象本事有实现toJSON方法 那么直接调用toJSON方法
// var objJSONString = JSON.stringify(obj)
// console.log(objJSONString)
var objJSONString = JSON.stringify(obj,["name","age"])
console.log(objJSONString)//[name:"hdc",age:"21"]

parse方法

◼ JSON.parse() 方法用来解析JSON字符串,构造由字符串描述的JavaScript值或对象。
  提供可选的reviver 函数用以在返回之前对所得到的对象执行变换(操作)。 
案例:
      var obj = {
      name : "hdc",
      age:18,
      }
      var objJSONString = JSON.stringify(obj)
      console.log(objJSONString)

      var newObj = JSON.parse(objJSONString,function(key,value){
        if(key == 'age'){
          return value + 2
        }
        return value
      })
      console.log(newObj)//{name: 'hdc', age: 20} 
    </script>
◼ JSON的方法可以帮我们实现对象的深拷贝:
但是目前我们还没有了解什么是对象的拷贝、浅拷贝、深拷贝的概念;
我们会在JavaScript高级中学习;

Storage

标签:console,name,JavaScript,objJSONString,JSON,var
From: https://www.cnblogs.com/hdc-web/p/18488419

相关文章

  • JSONPath,一个事半功倍的查找取数工具
    目录前言JSONPath介绍操作项筛选器运算符函数样本使用说明延伸前言日常在书写用例断言的时候,经常会遇到这样的场景:从结果中提取关键属性用于后续业务或者断言。一般遇到这类情况,处理方式基本都跟剥洋葱一样,遇到数组/集合,一层层循环读取,遇到对象套对象,一层层对象点......
  • json-server详细模拟GET、POST、DELETE等接口数据教程
    引言在前端开发过程中,我们经常需要在后端API尚未就绪的情况下模拟接口数据。json-server是一个强大而灵活的工具,可以帮助我们快速创建一个模拟的RESTfulAPI。本文将详细介绍如何使用json-server来模拟GET、POST、PUT、PATCH、DELETE等常用的HTTP方法,以及如何处理复杂的数......
  • “JsonConvert”同时存在于“Newtonsoft.Json.Net20, Version=3.5.0.0, Culture=neutr
    原因是两个dll冲突了。需要去掉一个。Newtonsoft.Json(也称为Json.NET)是一个流行的开源JSON框架,用于.NET,它以其高性能、易用性和广泛的功能而闻名。它支持丰富的数据操作和序列化属性设置,如自定义转换器、日期时间格式控制、命名策略等。Json.NET还提供了序列化特性,如JsonObjectA......
  • 根据json转idea 自带Http Client脚本
    importcom.fasterxml.jackson.databind.JsonNode;importcom.fasterxml.jackson.databind.ObjectMapper;publicclassApiDocConverter{publicstaticvoidmain(String[]args)throwsException{Stringjson="{\n"+&quo......
  • JSON和XML的对比及应用领域
    JSON和XML的对比对比表格对比维度JSONXML可读性通常更简洁,易于阅读和编写12结构清晰,但可能因标签和属性而显得冗长1解析难度解析通常比XML简单,多数现代编程语言内置解析器1解析可能涉及复杂的DOM操作,需要更多代码1数据体积通常更紧凑,文件大小较小1可能包含更......
  • spring boot fastjson Long 转字符串
     由于Long类型返回给前端时,如果数值过大,会导致精度丢失,这时候就需要把Long转成String。这时候如果专门为其写一个属性来存储,比较麻烦。这时候可以使用fastJson里的标签@JSONField(serializeUsing=ToStringSerializer.class)只要在model类上的Long字段加上这个标签,则会......
  • 获取街道、镇级的地图geoJson数据方法
    获取geoJson数据①、第一种方法(不可获取街道、镇级数据)可以直接获取全国、各省、各市以及个县级市详细地图信息的geoJson数据阿里云数据可视化平台http://datav.aliyun.com/portal/school/atlas/area_selector注意:目前平台还拿不到街道、镇的区域数据。②、第二种方法(可获取街......
  • 实现对象字段在转换为 JSON 时大小写保持不变
    实现对象字段在转换为JSON时大小写保持不变预期效果:对象中字段名是Age,NAME转成json后:{"Age":"12","NAME":"张三"}使用场景:给外系统传参数rest接口参数时,对方要求;方式一使用Jackson的@JsonProperty注解importcom.fasterxml.jackson.annotation.JsonProperty;import......
  • 【c#】JSON操作
    C#中使用Json,安装Newtonsoft.json依赖读取json文件注意:检查json文件的编码类型,是否为UTF-8。不是的话,读取到的中文会乱码方法:json文件使用记事本打开,界面下方会显示编码类型。若不是,将文件另存为,更改即可。privateJObjectReadJsonFile(stringfolder,stringfileName){......
  • 使用 Vcpkg 安装 nlohmann/json
    使用Vcpkg安装nlohmann/json是一个简单且高效的方法,因为它会自动为你处理库的安装和配置。以下是详细的步骤:安装Vcpkg克隆Vcpkg仓库:打开命令提示符(CMD)或PowerShell,并运行以下命令来克隆Vcpkg仓库:shgitclonehttps://github.com/Microsoft/vcpkg.gitcdvcpkg安......