首页 > 其他分享 >JSON.parse() 方法中里面有函数,转化完成后是字符串问题

JSON.parse() 方法中里面有函数,转化完成后是字符串问题

时间:2024-04-12 15:45:15浏览次数:21  
标签:alexa 函数 value parse JSON 字符串

要将 JSON 字符串中的函数还原回原来的函数对象,你可以使用 JSON.parse() 方法,并提供一个 reviver 函数来将字符串表示的函数重新转换为函数对象。以下是你可以使用的代码示例:

var obj = { "name":"Runoob", "alexa":function () {return 10000;}, "site":"www.runoob.com"};

// 将函数转换为字符串
obj.alexa = obj.alexa.toString();

// 将对象转换为 JSON 字符串
var myJSON = JSON.stringify(obj);

// 从 JSON 字符串中还原对象
var newObj = JSON.parse(myJSON, function(key, value) {
    // 如果值是字符串,并且看起来像是函数定义,则将其转换为函数对象
    if (typeof value === 'string' && value.indexOf('function') === 0) {
        // 使用 eval 将字符串转换为函数对象,这里有一定的安全风险,请确保 JSON 字符串是可信的
        return eval('(' + value + ')');
    }
    return value;
});

console.log(newObj);

这段代码会输出还原后的对象,其中 alexa 属性的值将会是一个函数对象。但请注意,使用 eval 有一定的安全风险,所以在实际应用中需要确保 JSON 字符串的来源可信。

标签:alexa,函数,value,parse,JSON,字符串
From: https://www.cnblogs.com/heibaiqi/p/18131451

相关文章

  • String类型转LPCTSTR -----理解C++中的字符串类型转换
    在看代码时,发现有时候会把string类型转换为LPCTSTR,刚开始不理解为什么要做这个转换,所以做了一些调查,现在记录如下是这样的,STRING是代表C++中的字符串string,而LPCTSTR代表的是Windows系统中的字符串类型。也就是说,这样转换的目的是为了把C++中的字符串string转换为Windows系......
  • 量化系统JSON数据包组织数据(全)
    {'timetag':'2024041209:40:21',--时间'lastPrice':9.02,--最新价'open':8.55,--开盘价'high':9.3,--当前最高价'low':8.4,--当天最低价'lastClose':8.48,--昨收盘'amount':11701.75,--成交量......
  • C#长sql语句换行(长字符串换行且换行符不计入字符串中)
    示例:在红圈处敲回车vs会将其分段并拼接,这不是我想要的效果、不仅不美观还不好复制sql语句只需要在字符串前加一个@号就可以解决......
  • StringHelper--字符串左右添加指定字符
    StringHelper--字符串左右添加指定字符1usingSystem;2usingSystem.Collections.Generic;3usingSystem.Configuration;4usingSystem.Linq;5usingSystem.Text;6usingSystem.Threading.Tasks;78namespaceHRMessageApp.Helper9{10publiccla......
  • golang JSON序列化和反序列化
    目录JSON序列化(Marshaling)JSON反序列化(Unmarshaling)错误处理和注意事项在Go语言(通常被称为Golang)中,JSON(JavaScriptObjectNotation)是一种常用的数据交换格式。Go标准库提供了encoding/json包,使得JSON的序列化(将Go数据结构转换为JSON格式的字符串)和反序列化(将JSON格式的字符串......
  • json list to excel
    每次从数据库导出数据交付产品的时候常需要把json拍成excel"""json_to_excel.py~~~~~~~json文件转换为excel文件(xlsx)注:最多容纳1048576行数据"""importosimportsysimportjsonimportopenpyxlfromopenpyxl.stylesimportNamedStyle,Font,A......
  • java中字符串替换的4种方法 replaceAll() 带正则表达式参数 str.replaceAll("[0-9]+
    java中字符串替换的4种方法replaceAll()带正则表达式参数str.replaceAll("[0-9]+","");目录前言一、String的replace()方法二、String的replaceAll()方法三、StringBuffer/StringBuilder的replace()方法四、Matcher的replaceAll()方法总结前言在日常开发中,我们对......
  • 算法训练营Day08-LeetCode344. 反转字符串 && 541. 反转字符串 II && 151. 反转字符串
    344.反转字符串题目链接:LeetCode344.反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题思路:字符串首尾字符交换即可完成反转。定......
  • php使用函数pathinfo()、parse_url()和basename()解析URL
    本文主要介绍的是php使用函数pathinfo()、parse_url()和basename()解析URL的实例代码,下面话不多说,直接来看代码实例代码如下:1、利用pathinfo解析URL <?$test=pathinfo("http://localhost/index.php");print_r($test);?>    结果如下Array([dirname]......
  • 输入流和字符串互转InputStream2String和String2InputStream
    输入流转字符串12345678910111213141516171819public static StringInputStream2String(InputStreamin){    InputStreamReaderreader= null;    try {        reader= new InputStreamReader(in, "UTF-8");   ......