js接收json总结 new Function,eval,new Array

JSON.parse与stringify:JavaScript数据交换的底层原理与工程实践 JSON是一种跨语言通用的数据交换格式,其核心能力依赖于JavaScript内置的JSON.parse和JSON.stringify两个函数。它们并非语法糖,而是严格遵循JSON标准的序列化与反序列化机制,承担着数据边界校验、类型安全转换和跨环境互通的关键职责。理解其对undefined、Date、BigInt、循环引用等特殊类型的处理逻辑,是保障Web API通信、localStorage持久化及前后端协作稳定性的基础。本文深入解析其设计哲学、常见陷阱与生产级最佳实践,帮助开发者构建健壮、可维护的数据交互 阅读详情

①从json数据的形式来区分

a.json数据格式为单条,如下
data = {"id":108150,"avaliable":"Y","code":"0009","name":"test","parentId":0,"shortName":"test"}
        这时,可以通过 js的 eval 函数 和new Function() 匿名函数来实现

function initAvaliable() {
	$.ajax({
		//调用后台util/comboxData/{syscode}/{code}
		url: "util/comboxData/appConfigSystem/avaliable",
		dataType: 'json',
		success: function(data){
			//返回数据
     			var objFunc = new Function("return" + data)();  // new Function 方法
			var objEval = eval("("+data+")"); // eval 函数方法	
			alert(objFunc.id+"--"+objEval.id); // 显示为 108150--108150
		}
	});
}

②json 数据格式为 多条,如下
data = [{"id":100450,"code":"aaa","name":"性质1","memo":"aaaa"},
{"id":100451,"code":"bbb","name":"性质2","memo":"aaaa"},{"id":100452,"code":"ccc","name":"性质3","memo":"备注备注123123123123"}]
这时 可以通过 new Array 数组来转换

function initAvaliable() {
	$.ajax({
		//调用后台util/comboxData/{syscode}/{code}
		url: "util/comboxData/appConfigSystem/avaliable",
		dataType: 'json',
		success: function(data){
			//返回数据
			var dataArr2 = new Array(); // 创建数组
			dataArr2=dataArr2.concat(data);        // 合并数组
			alert(dataArr2[0].id+"--"+dataArr2[0].name); //显示 100450--性质1 
		}
	});
}









        
JSON.parse与JSON.stringify深度解析:序列化与反序列化核心原理 JSON序列化与反序列化是Web数据交互的基础能力,其本质是将JavaScript对象与标准JSON字符串双向转换。理解JSON.parse()的严格语法校验机制和JSON.stringify()的类型映射规则,是保障API通信、本地存储及实时消息可靠性的前提。二者不仅涉及基础类型转换,更直面undefined、Date、循环引用、BOM字符等真实工程陷阱。掌握replacer/reviver函数定制逻辑、toJSON协议约定及错误防御模式,可显著降低400/500错误率、规避XSS风险,并支撑localS 阅读详情

相关推荐

JSON.parse()与JSON.stringify():JavaScript数据契约的核心机制

JSON是一种与语言无关的轻量级数据交换格式,其核心价值在于定义前后端、存储层与运行时之间的标准化数据契约。JSON.parse()和JSON.stringify()并非简单编解码工具,而是严格遵循RFC 7159的协议转换器——前者执行语法与语义双重校验,确保输入字符串安全还原为JS基础类型;后者通过可枚举性检查、类型过滤与循环引用防护,实现有损但可控的序列化。这种单向映射导致Date、undefined、函数等类型必然丢失,构成前端开发中‘类型幻觉’与‘结构失真’的根源。因此,在API通信、localS

chuannaoxuan4674的博客 449

new Function("return " + data)作用

这种方式能将字符串解析成json对象(new Function("","return "+json))(); function Parsejson(data){ return (new Function('return '+data))(); } var str="{'a':'123','b':'abc'}"; var str1 = 'str'; //新增加语句 var obj=Parsejso...

cillent_boy的专栏 2048

JSON.parse与stringify:JavaScript数据序列化的底层原理与工程实践

JSON是一种与语言无关的轻量级数据交换格式,其核心价值在于实现跨系统、跨平台的数据标准化流通。理解JSON规范(RFC 7159)与JavaScript对象的本质区别,是掌握序列化(stringify)与反序列化(parse)的前提。这两个方法并非语法糖,而是浏览器和Node.js深度优化的底层基础设施,承担着安全编码、类型过滤、结构校验等关键职责。它们广泛应用于API通信、本地存储、配置管理、微前端数据传递等场景,尤其在TVBox书源配置、前端调试、Electron应用等真实工程中构成数据流动的‘海关枢

weixin_30399821的博客 604

Js中把JSON字符串转换为JSON对象(eval()、new Function())

在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数。 2. 使用Function对象来进行返回解析。  第一种解析方式:使用eval函数来解析,并且使用jQuery的each方法来遍历 用jQuery解析JSON数据的方法,作为jQuery异步请求的传输对象,jQuery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字...

weixin_33721427的博客 289

JavaScript深拷贝原理与实战:避开JSON.stringify陷阱

深拷贝是JavaScript中保障数据隔离性的核心机制,其本质在于重建内存独立、结构等价、行为一致的对象图。它需解决引用环、不可枚举属性与Symbol键、内置/宿主对象类型失真、原型链断裂四大底层难题。技术价值体现在状态管理、表单快照、微前端隔离等关键场景,避免UI错乱、接口发错、历史回退异常等生产事故。本文聚焦deep cloning在真实工程中的落地挑战,结合Lodash.cloneDeep与structuredClone的演进逻辑,解析从循环引用检测到跨iframe兼容的完整实践路径。

weixin_33694172的博客 352

JS中的JSON(秒懂如何操作JSON)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的语法子集,但是独立于编程语言。JSON格式可以用来在网络中传输数据,也可以存储数据。JSON采用键值对的方式表示数据,其中键是字符串,值可以是字符串、数字、布尔值、数组、对象或者null。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于在不同系统之间进行数据传输和存储。格式JSON采用键值对的方式存储数据。

百赢出品,必属精品 7268

JS中new创建对像与JSON创建对象

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34067980的博客 780

从混乱到清晰:用QJsonObject重构你的Qt网络API数据解析层(避坑指南)

本文详细介绍了如何使用QJsonObject重构Qt网络API数据解析层,避免常见的JSON解析陷阱。通过安全解析模式、数据绑定和性能优化技巧,帮助开发者构建高效、健壮的解析逻辑,提升代码可维护性和可读性。特别适用于处理复杂嵌套的JSON响应数据场景。

weixin_29011667的博客 230

原生js之new对象的过程,手写一个js的JSON.Parse,js的深拷贝

原生js之new对象的过程,手写一个js的JSON.Parse,js的深拷贝

xiaoquan1997的博客 460

ESP32-P4开发板实战:从零配置VSCode环境到点亮MIPI-DSI屏幕(避坑指南)

本文详细介绍了ESP32-P4开发板在VSCode环境下的配置流程,包括SDK安装、idf_component.yml依赖管理,以及MIPI-DSI屏幕驱动的实现方法。通过实战指南帮助开发者避开常见配置陷阱,快速完成从环境搭建到屏幕点亮的全流程,适用于物联网和嵌入式开发场景。

pp12345的博客 739

奥比中光Gemini335L SDK实战:从标定参数到3D点云转换

本文详细介绍了奥比中光Gemini 335L深度相机的SDK实战应用,重点讲解如何跳过繁琐的棋盘格标定,直接调用出厂预标定参数实现高效的3D点云转换。通过解析内参、外参获取及四种核心坐标转换模式,并结合OpenCV等工具,指导开发者快速将相机集成到机器人抓取、三维测量等项目中,实现开箱即用的3D视觉解决方案。

raspberrypi5的博客 639

PyExecJS核心API详解:eval()、compile()与call()函数使用指南

PyExecJS是一个能让Python直接运行JavaScript代码的强大工具,它会自动选择系统中可用的最佳JavaScript运行时环境,将执行结果以Python对象形式返回。本文将详细介绍其核心API——`eval()`、`compile()`和`call()`函数的使用方法,帮助开发者轻松实现Python与JavaScript的无缝交互。 ## 快速入门:PyExecJS基础架构 Py

gitblog_00153的博客 707

从零构建:四轴机械臂D-H参数建模与MATLAB实战指南

本文详细介绍了四轴机械臂D-H参数建模的完整流程与MATLAB实战应用。从机械臂运动学基础出发,解析D-H参数原理与坐标系建立规则,提供MATLAB Robotics Toolbox的安装、模型创建及正逆运动学求解的代码实现。特别针对四轴机械臂的逆运算优化、轨迹规划和奇异位形规避等高级应用给出实用解决方案,是机器人开发者的实战指南。

weixin_29062255的博客 419

JS中操作JSON时,对数据的增删改查

JS中操作JSON时,对数据的增删改查1、增加2、修改3、删除4、读取数据 1、增加 比如有一个JSON对象myJsonObj,如果需要增加某一项,可以这样写 myJsonObj.newObj=“TEST” 其中newObj是key,TEST是vale。JSON对象其实是就一个个的KEY-VALUE对,而VALUE的形式不限,只要是对象就可以,所以VALUE还可以是一个JSON,这样就可以嵌套很...

lijwen的博客 1万+

CloudCompare实战:5分钟搞定点云数据预处理(含常见格式转换技巧)

本文提供了一套基于CloudCompare的5分钟点云数据预处理实战指南。文章详细讲解了如何利用这款开源工具,快速完成点云数据的格式转换(如LAS转PLY)、统计离群值降噪、体素网格下采样以及交互式裁剪等核心操作,帮助用户高效清理和规整杂乱数据,为后续分析建模奠定基础。

weixin_29207533的博客 475

最终篇——SWAT模型的建立

同理,Soil Data也是同样的方法导入,在Soil Database Options的选项中,选择UserSiol,用同样的方法导入土壤类型,进行重分类。打开窗口后,只定义HRU Thresholdes,其余两个不用设置,设定各数据单元的计算率,这里的10%的意思是计算精度,即分成级HRU计算单元太小,小于平均计算单元的10%,我们就不对这HRU单元进行计算(也就是说太破碎的计算单元不进行计算),若选择0%意味着全部进行计算,需要耗费大量的内存和时间,对计算机要求较高,不建议。

m0_72556434的博客 5620

JS ES5

严格模式 use strict 必须使用var声明变量 禁止自定义函数this指向window 'use strict' funcion Person(name){ this.name = name; } Person("Tom"); //error new Person("Tom"); //right 为eval创建作用域 对象属性名不能重复 JSON对象 JSON....

KevinTseng 172

linux下载NCBI基因组数据

fastq-dump --gzip --split-3 SRR25474921.sra,#使用fastq-dump将sra转换为fastq格式,--split-3 参数可以把双端测序的reads提取出来,左端标示为*_1.fastq;右端标示为*_2.fastq。安装之后转到NCBI网页搜索需要的数据或者到SRA数据中查找,我下载的是SRA数据库中的SRR25474921(SRA中是原始测序数据)prefetch --option-file SRR_Acc_List.txt #下载多个SRA文件。

k7586556的博客 2301

eval解析JSON中的注意点 (转)

在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式:1.一种为使用eval()函数。2. 使用Function对象来进行返回解析。使用eval函数来解析,并且使用jquery的each方法来遍历用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObj...

weixin_34214500的博客 76

【100%通过率】华为OD机试真题 Java&Go 实现【微服务的集成测试】【2023 Q1 | 100分】

现在有n个容器服务,服务的启动可能有一定的依赖性(有些服务启动没有依赖),其次服务自身启动加载会消耗些时间。给你一个nxn 的二维矩阵 useTime,其中 useTime=10 表示服务i自身启动加载需要消耗10s,useTimeli[j]=1 表示服务i 启动依赖服务i 启动完成,useTimei[k]=0,表示服务i 启动不依赖服务 k其实 0

MISAYAONE的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

json jquery php,jquery如何处理json数据

jquery结合php如何处理json数据,直接看如下例子:php端代码:$data['id'] = 1;$dat['name'] = "mary";$da['red']= array_merge($data,$dat);$data1['id'] = 2;$dat1['name'] = "燕子";$da['blue']= array_merge($data1,$dat1);print_r($da)...

weixin_42510900的博客 173

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

eval5核心API详解:Interpreter类与evaluate方法的终极使用指南

eval5是一个基于TypeScript编写的JavaScript解释器,它完整支持ES5语法,能够在浏览器、Node.js、小程序等多种JavaScript运行环境中提供安全的代码执行环境。作为一款专业的JavaScript沙盒执行工具,eval5的核心API设计既简洁又强大,特别适合需要安全执行用户代码的场景。 ## 为什么选择eval5作为JavaScript执行沙盒? 🚀 eval5

gitblog_00453的博客 441

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

JavaScript中判断JSON格式的完整指南:从try-catch到正则预检

JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,已成为前后端通信和配置存储的通用标准。其核心原理是基于文本的键值对和数组结构,易于人阅读和编写,也便于机器解析和生成。在工程实践中,JSON格式的校验直接关系到程序的健壮性(Robustness),未经校验的JSON解析可能导致进程崩溃,这在处理用户输入或第三方API响应时尤为关键。通过防御性编程,在数据解析前进行格式验证,可以有效避免因数据格式错误引发的线上故障。常见的应用场景包括API响应处理、配置文件读取和用

weixin_30654419的博客 546

JS-YAML深度解析:现代JavaScript中的高效数据序列化方案

在当今的JavaScript开发生态中,数据序列化与配置文件管理是每个开发者必须面对的核心问题。JS-YAML作为一款高性能的YAML 1.2解析器和序列化器,为JavaScript开发者提供了在Node.js和浏览器环境中处理YAML格式数据的完整解决方案。本文将从技术实现、架构设计、性能表现到企业级应用实践,全面剖析这一重要工具。 ## 技术选型分析:为什么JS-YAML脱颖而出? YAM

gitblog_00628的博客 848

JSON.parse与stringify实战指南:安全解析、可控序列化与工程避坑

JSON.parse和JSON.stringify是JavaScript中实现数据序列化与反序列化的基础API,其本质是遵循JSON标准的字符串与JS值之间的双向转换机制。理解它们不校验输入类型、不处理特殊对象、不支持循环引用等设计边界,是构建健壮Web应用的关键技术前提。二者在localStorage持久化、跨iframe通信、WebSocket消息收发、SSR状态水合等高频场景中承担着‘数据搬运’核心职责,但直接裸用极易引发SyntaxError、数据失真、XSS风险及内存溢出等问题。本文聚焦真实工程现

weixin_33811539的博客 461
上一篇: easyui的截取字符省略显示
下一篇: 网站收藏
_hug
博客等级 码龄17年 24粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值