当前位置: 首页 > news >正文

JavaScript之Json数据格式

介绍

  • JavaScript Object Notation, js对象标注法,是轻量级的数据交换格式
  • 完全独立于编程语言文本
  • 字符集必须用UTF-8格式,必须用“”
  • 任何支持的数据类型都可以用JSON表示
  • JS内内置JSON解析
  • JSON本质就是字符串

Json对象和JS对象互相转化

  • 前端数据传到后端
  • 使用JSON.Stringify(),js对象转成JSON字符串
// Json对象和JS对象互相转化
var obj = { name: '小明', age: 18 };  // JS对象
var str = JSON.stringify(obj); // 将对象转为字符串,返回一个字符串
console.log('JSON.stringify(obj):', str); // {"name":"小明","age":18},将对象转为字符串,返回一个字符串
  • 从后端拿到数据需要在前端使用
  • 使用JSON.parse(),JSON字符串转为JS对象
 var xm = '{"name":"小明","age":18}'; // JSON字符串
 var obj1 = JSON.parse(xm); // 将字符串转为对象,返回一个对象
 console.log('JSON.parse(xm):', obj1.name); // 将字符串转为对象,返回一个对象,可以在前端使用

在这里插入图片描述

筛选对象的键值

  • js对象json转为字符串,JSON.stringify()方法,有三个参数
  • ①要转换的对象/数组
  • ②数组/函数
  • (若参数2为数组,则反转数组中的指定属性
  • 若参数2为函数,则调用该函数并传入每个成员的键和值。)
  • ③文本缩进、空格和换行符
// 筛选对象的键值
var xm = {
    name: '小明',
    age: 18,
    class: '一班',
    phone: 1333333333,
    height:'1.8米'
}
var xm_json = JSON.stringify(xm,['name','class','height']); // 将对象转为字符串,返回一个字符串,第二个参数是筛选的键值,第三个参数是缩进的空格数
console.log(xm_json)

var xm_json2 = JSON.stringify(xm,name,6);     //name是一个函数
function name(key,value){
    if (value == '小明') { 
        return '小华'; 
    } else {
        return value; // 返回该属性
    }
}
console.log(xm_json2) // {"name":"小华","age":18,"class":"一班","phone":1333333333,"height":"1.8米"}

在这里插入图片描述

传入函数处理json键值

  • 从服务器接收到JSON值,想再用parse转成对象时进行的处理
  • JSON.parse(),JSON字符串转为JS对象
  • 有两个参数
// 传入函数处理json键值
var xm = `{
    "name": "小明",
    "age": 18,
    "class": "一班",
    "phone": 1333333333,
    "height": "1.8米"
}`;                                 // JSON字符串
var xm_obj = JSON.parse(xm,name); // 将对象转为字符串,返回一个字符串,第二个参数是筛选的键值,第三个参数是缩进的空格数
function name(key,value){
    if (key == 'class') { 
        return '六班'; 
    } else {
        return value; // 返回该属性
    }
}
console.log(xm_obj) // {"name":"小明","age":18,"class":"六班","phone":1333333333,"height":"1.8米"}
console.log(xm_obj.class) // 六班

在这里插入图片描述

相关文章:

  • git 本地创建了版本 怎么推送到远端
  • 代理模式的优缺点是什么?
  • SpringMVC的简单介绍
  • JAVA刷题记录: 专题四 前缀和
  • Swift 解 LeetCode 250:搞懂同值子树,用递归写出权限系统检查器
  • 什么是大型语言模型(LLM)?哪个大模型更好用?
  • 力扣316去除重复字母-单调栈
  • python 3.9 随机生成 以UTF-8 编码 的随机中文
  • 基于大模型的GCSE预测与治疗优化系统技术方案
  • Ubuntu中MATLAB启动图标设置
  • Opencv计算机视觉编程攻略-第十一节 三维重建
  • 蓝桥杯—数字接龙(dfs+减枝)
  • Vue中使用antd-table组件实现数据选择、禁用、已选择禁用-demo
  • 从传统物流到智能调度的全链路升级
  • 配置GRE-tunnel隧道(思科华为)
  • 水产养殖水下监控无人机推荐-P200PRO
  • 什么是可靠性工程师?
  • C++---day7
  • Chapter 7: Compiling C++ Sources with CMake_《Modern CMake for C++》_Notes
  • unittest测试模块:Python 标准库中的单元测试利器
  • 百度公司做网站可靠吗/seo扣费系统源码
  • 做logo专用的网站是哪个/某网站搜索引擎优化
  • 北京网站建设还公司/阿里巴巴推广
  • 深圳龙华建网站公司/兰州网站开发公司
  • 专业做网站广州/百度com百度一下你
  • 网站建设所需资料及费用/阿里指数查询官网入口