首页 > 其他分享 >js把string转化为json

js把string转化为json

时间:2023-06-14 18:44:36浏览次数:26  
标签:obj string 对象 JSON js 字符串 json var

// 声明变量名为a的对象
var a = {a:1,b:2,c:"wangwei"};
// 将JSON对象转化为JSON字符,赋值给变量
let strResult =JSON.stringify(a)
// 查看变量strResult是什么类型
typeof strResult // 'string'

// JSON.parse()用于从一个字符串中解析出json对象
let jsonResult = JSON.parse(strResult);
// 查看变量jsonResult是什么类型
typeof jsonResult // 'object'
// 控制台中直接查看jsonResult对象的值
{a: 1, b: 2, c: 'wangwei'}
// 控制台中取JSON对象的任意值
jsonResult.a // 1
jsonResult.b // 2
jsonResult.c // 'wangwei'
// 数组用[],并指定下标进行取值

 

// JSON字符串:
var str1 = '{ "name": "wangwei", "sex": "man" }';
// JSON对象:
var str2 = { "name": "wangwei", "sex": "man" };

一、JSON字符串转换为JSON对象
要使用上面的str1,必须使用下面的方法先转化为JSON对象:
//由JSON字符串转换为JSON对象
var obj = eval('(' + str1 + ')');
或者
var obj = JSON.parse(str1); //由JSON字符串转换为JSON对象

然后,就可以这样读取:
Alert(obj.name);
Alert(obj.sex);
特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。

二、可以使用toJSONString()或者全局方法JSON.stringify()将JSON对象转化为JSON字符串。
例如:
var last=obj.toJSONString(); // 将JSON对象转化为JSON字符
或者
var last=JSON.stringify(obj); // 将JSON对象转化为JSON字符


在使用JSON.parse的时候,返回来的数据一定是严格的json格式,key值一定要用 双引号 包起来,否则浏览器就会抛出异常。
另外,对于不标准的json字符串,如第一种示例,使用eval()虽然可以正常解析,但是从安全的角度来讲,一定要谨慎使用eval方法。规范json格式。

标签:obj,string,对象,JSON,js,字符串,json,var
From: https://www.cnblogs.com/wzihan/p/17481102.html

相关文章

  • JS排序:插入排序 冒泡排序 选择排序
    1.插入排序 1letarr=[30,5,7,60,22,18,29]2letfn=arr=>{3for(letj=1;j<arr.length;j++){4letcurrent=arr[j]5letpreIdx=j-16while(preIdx>=0&&arr[preIdx]>......
  • JS中, Set为什么是带键的集合?
    起因这两天写了个LRUCache,用到了Set做AllowList,来判断API是否应该被缓存.查MDN时,发现Set被归类在KeyedCollection中.下意识中,总认为Set属于Array的一类,应该是IndexedCollection.感觉奇怪,所以多查了查文档过程首先,看了下MDN的文档、ECMA的文档.都没有明确......
  • JS逆向实战18——猿人学第八题 验证码 - 图文点选
    声明本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!网站https://match.yuanrenxue.cn/match/8网站分析首先进去就看到是如此复杂的文字验证码。我们首......
  • npm install报错[email protected] postinstall: `node scripts/build.js`
    [email protected]: nodescripts/build.js解决方法:npmconfigsetsass_binary_site=https://npm.taobao.org/mirrors/node-sassnpminstall  ......
  • [nodejs] __dirname is not defined in ES module scope
    原因:CommonJS中提供的全局变量如require, exports, module.exports, __filename, __dirname等,在ESModules环境中均是不可用的,require, exports, module.exports在ESModules中基本对应着import,export,exportdefault。解决:import{dirname}from"node:path......
  • web页面中导出Excel (方法二) 前端easyui-datagrid导出Excel 使用 datagrid-export.js
    这个示例使用 前端easyui-datagrid 后端php 前端easyui-datagrid导出Excel使用了datagrid-export.js datagrid-export.js文件可自行搜索下载优点:查询结果显示在datagrid中(不能分页),前端直接下载不用回后端,效率高速度快。缺点:查询结果不能分页,必须显示全部内容,显......
  • js函数的概念
    @TOCjs函数的概念对于js来说,函数就是把任意一段代码放在一个盒子里面在我想要让这段代码执行的时候,直接执行这个盒子里面的代码就行先看一段代码//这个是我们以前写的一段代码for(vari=0;i<10;i++){ console.log(i)}//函数,这个{}就是那个“盒子”functionfn(){......
  • Vue.js 组件基础 #yyds干货盘点#【yyds干货盘点】
    学习目录:Vue.js简介Vue.js实例与数据绑定Vue.js计算属性和侦听器Vue.js条件渲染和列表渲染Vue.js事件处理Vue.js表单输入绑定Vue.js组件基础Vue.js组件通信Vue.js插槽Vue.js动态组件和异步组件Vue.js自定义指令Vue.js过渡和动画Vue.js混入Vue.js自定义事件和v-model......
  • NodeJS研究笔记:利用Buffer类的二进制数据读取接口解析ELF文件格式
    javascript作为前端开发语言,自古来对二进制数据的读取解析方面的支持都很薄弱,一般来说,解析二进制数据时,往往是将数据转换成字符串,然后运用各种字符串操作技巧来实现二进制数据的读取。由于NodeJS作为后台服务器开发平台,数理逻辑的设计需求超越javascript作为前端语言时界面UI的设......
  • StringUtils.join()方法使用
    *StringUtils.join()方法使用打印输出:*使用StringBuilder进行拼接:张三,李四,王五*使用StringUtils.join进行拼接:张三,李四,王五*张三,李四,王五*张三&李四&王五*张三和李四和王五*手机耳机电脑packagecom.example.core.mydemo.string;importorg.apach......