JavaScript中JSON的处理心得
一门语言用到深处,就避免不了要对数据的类型进行准确判断,并针对其类型做正确处理。
抛开在Web前端环境不谈,从一门独立编程语言的角度来看js,你就会感受到对js中数据类型的理解有多么重要。
- 禁止直接多级访问对象属性,必须一级一级访问;如abc.d这样是不会造成报错的,但abc.d.e可能会造成异常
- 在继续往里面访问时,先用一个类型分析函数分析一下
例如:
/**
* 判断给定对象的类型,返回字符串格式的名称
* @param {Object} obj
* @returns {String}
*/
var parseType = function (obj) {var type = typeof obj;if ("object" === type) {if (obj) {if (obj instanceof Array) {return "array";}if (obj instanceof Object) {return type;}var native_obj = Object.prototype.toString.call(obj);if ("[object Window]" === native_obj) {return "object";}if ("[object Array]" === native_obj || "number" === typeof obj.length && "undefined" !== typeof obj.splice && "undefined" !== typeof obj.propertyIsEnumerable && !obj.propertyIsEnumerable("splice")) {return "array";}if ("[object Function]" === native_obj || "undefined" !== typeof obj.call && "undefined" !== typeof obj.propertyIsEnumerable && !obj.propertyIsEnumerable("call")) {return "function";}} else {return "null";}} else if ("function" === type && "undefined" === typeof obj.call) {return "object";}return type;
};//示例var abc = {};
console.log(parseType(abc.type));
console.log(parseType(abc.type.native_obj));
在nodejs环境执行:
undefined
/Users/jixxxxxx/Web/js/type_ha.js:32
console.log(parseType(abc.type.native_obj));^TypeError: Cannot read property 'native_obj' of undefinedat Object.<anonymous> (/Users/jixxxxxx/Web/js/type_ha.js:32:31)at Module._compile (module.js:425:26)at Object.Module._extensions..js (module.js:432:10)at Module.load (module.js:356:32)at Function.Module._load (module.js:313:12)at Function.Module.runMain (module.js:457:10)at startup (node.js:138:18)at node.js:974:3
JavaScript中JSON的处理心得相关推荐
- Javascript中Json的使用
JSON 1.JSON概述 JSON:JavaScript Object Notation(JavaScript 对象标记法),它是一种存储和交换数据的语法. 当数据在浏览器与服务器之间进行交换时,这 ...
- Javascript 中 JSON 与对象 的相互转换
1.Json 应用现状 客户端和服务端的数据交换以一定的格式进行,目前,这种数据格式以xml和Json为主.Json是JavaScript Object Notation的简写,采用JavaScrip ...
- 前端 JavaScript 中 JSON.stringify() 的基本用法
前言 在开发工作中,我们可能会碰到这样的需求:需要将某个对象内容弹窗显示或者保存在文件中,这时候如果你直接弹窗的话,很可能就是下面这样的: 因为很多接口它对参数有要求,比如只能是字符串之类的. 这时候 ...
- Javascript中JSON与String相与转换
JSON字符串: var str1 = '{ "name": "cxh", "sex": "man" }'; //注意有 ...
- JavaScript 中 JSON.parse()和JSON.stringify()
为什么80%的码农都做不了架构师?>>> 函数 描述 JSON.parse() 用于将一个 JSON 字符串转换为 JavaScript 对象. JSON.stringify( ...
- JavaScript 中json的遍历
var json = {"name" : "小明","age" : "10","sex" : &qu ...
- javascript中JSON对象和formdata格式互相转换
在工作中需要用到表单提交,有些是JSON对象格式的,但是要用到FormData格式的数据,所以需要转换.代码如下://json对象转formdata格式function jsonToFormData( ...
- JavaScript中JSON字符串转JSON对象遇到的问题
今天遇到一个奇怪的问题,解析二维码后获得了一个JSON字符串,将JSON字符串转换成JSON对象的时候报错了. 报错如下: 代码如下: 检查了无数次数据,数据是JSON字符串,引号也都是英文的,就是莫 ...
- javascript中json格式转为字符串
function ConvertJSONDateToJSDateObject(JSONDateString) { var date = new Date(parseInt(JSONDateSt ...
- JavaScript中的JSON序列化/反序列化
JSON 1. JSON简介 2. JSON与JS Object区别 3. 对象序列化 3.1 JSON序列化 3.2 JSON反序列化 1. JSON简介 JSON(JavaScript Objec ...
最新文章
- 2021年大数据HBase(十一):Apache Phoenix的视图操作
- SparkSQL和Hadoop(面向数据科学家和大数据分析师)
- Android库so文件及skia函数的调用
- 能力差的程序员90%输在这点上!CTO:其实都是瞎努力!
- Nagios 监控系统架设全攻略_转自IBM Developer
- php 3des 兼容java,PHP版3DES加解密类,可与java的3DES(DESede)加密方式兼容
- 只能计算机论文,谈计算机及人工智能技术发展-人工智能论文-计算机论文.docx...
- error LNK2019: 无法解析的外部符号 WinMain,该符号在函数 int __cdecl invoke_main(void)”中被引用
- Spring Boot笔记-JPA自定义SQL语句参数为对象时如何操作
- [转载] Python 内置函数 lambda、filter、map、reduce
- [Windows Server 2012] SQL Server 备份和还原方法
- Java考试系统题目和选项乱序实现
- plsql 查看表空间使用情况
- 举个栗子!Tableau 技巧(183):快速实现部分类别的排序
- 天下谁人不识君,体面的礼品
- 减法公式运算法则_减法的运算法则
- 手动计算Q-Learning的一个实例
- 对计算机系美好期望,计算机系举行新生入学教育大会——学生讲堂
- 代码Review工具upsourse的部署
- r语言 断轴 画图_R语言作图——坐标轴截断画图
热门文章
- 1.2 Linux的网络配置和连接工具
- 二分法06:第一个错误的版本
- 06向量及其坐标表示、向量的方向角与方向余弦、向量组共线与共面的条件、向量的加法与数乘运算、向量组的线性组合、二维向量的基向量分解、三维向量的基向量分解、用坐标做向量的数乘
- PyTorch:安装和配置
- python有参装饰器详解_Python 带有参数的装饰器实例代码详解
- HarmonyOS 编译系统源码
- Java 基础知识体系
- 软工大二下半年第十四周学习进度
- ASP.NET MVC中通过Request.IsAjaxRequest()来判断是否要加载公共视图
- $bzoj1046-HAOI2007$ 上升子序列 $dp$ 贪心