字符串转换成JSON
JS的字符串转换成JSON对象
好吧实际讲的是cookie字符串转换成json,原理都一样
要实现这一功能,首先,JS的字符串比如是这样的,querystring字符串.也就是有规律的吧,我在做xss,cookie管理平台的时候,碰到的一个问题就是需要把document.cookie收集的字符串,重新转换成JSON格式,然后拿到edit this cookie中去。避免一个一个的粘贴。下面是一个简单的cookie字符串,就以他为例子
var cookie="pgv_pvi=2810585088; it_boombar_first_visit=1480533616; __utma=138229305.716135822.1480562425.1480562425.1480642400.2; __utmz=138229305.1480562425.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); PHPSESSID=eevee4b99frk0rhaaiobqqef71"
最终要实现的效果是这样的:
[
{"domain":"xs.com","name":"pgv_pvi","path":"/","session":false,"storeId":"0","value":"2810585088","id":1},{"domain":"xs.com","name":"it_boombar_first_visit","path":"/","session":false,"storeId":"0","value":"1480533616","id":2},{"domain":"xs.com","name":"__utma","path":"/","session":false,"storeId":"0","value":"138229305.716135822.1480562425.1480562425.1480642400.2","id":3},{"domain":"xs.com","name":"__utmz","path":"/","session":false,"storeId":"0","value":"138229305.1480562425.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)","id":4},{"domain":"xs.com","name":"PHPSESSID","path":"/","session":false,"storeId":"0","value":"eevee4b99frk0rhaaiobqqef71","id":5}
]
第一步
我们需要用到js的API,split()方法,把字符串分割成数组,当然在这之前我,预先申明了一个str_json数组对象,要于承载最终的结果
var str_json=[];
var arr=cookie.split(';'); //这样我们便得到了一个字符串转换过来的数组
console.log(arr) ; //看下当前的结果
//Array[5]
//0:"pgv_pvi=2810585088"
//1:" it_boombar_first_visit=1480533616"
//2:" __utma=138229305.716135822.1480562425.1480562425.1480642400.2"
//3:" __utmz=138229305.1480562425.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)"
//4:" PHPSESSID=eevee4b99frk0rhaaiobqqef71"
//length:5
看一下到这里出来的结果,到这里,数组里面的每一项还需要分割一次以”=”号的方式
第二步
接下我们就需要对上面的arr这个数组的每一项进行遍历,然后作些处理,数组的遍历我采用的是es5的forEach方法,兼容性IE9以上版本,chrome,firefox都支持 ,不知道的去MDN上面看
arr.forEach(function(e,i) {//e是遍历的当前项,i是当前数的索引//如果索引是个数字,也就是只遍历本地变量if (!isNaN(i)) {//把当前项,再次分割成数组,一般都是两个值item[0],item[1]var item = e.split('='); //如果在此项中有多个=号,也就是分割出来的数组长度大于2if(item.length>2){var tmp=[]; //建立一个临时数组,置换数据tmp[0]=item[0]; tmp[1]=[];//在此,遍历上面的item数组item.forEach(function(cur,d){//由于第一项已经交给tmp[0]了,我们只取后面的项,全部放到tmp[1]当中if(!isNaN(d) && d>0){tmp[1].push(e);}})//这里我们需要覆盖tmp[1]的值,把里面的数组转换成一个字符串,并还原=号tmp[1]=tmp[1].join('=')item=tmp; //在把临时数组tmp,重新给回覆盖回item}str_json.push({"domain":"xxxx.com","name":item[0].trim(),"path":"/","session": false,"storeId":"0","value":item[1].trim(),"id":i})}
})
//最后输出一下str_json
console.log(str_json)
//转换成json字符串
console.log(JSON.stringify(str_json))
//用window.prompt提示出来,可以直接拷贝使用了
window.prompt('please copy',JSON.stringify(str_json))
至此cookie字符,转换成字符串结束.
贴上完整代码:
<script>var cookie="pgv_pvi=2810585088; it_boombar_first_visit=1480533616; __utma=138229305.716135822.1480562425.1480562425.1480642400.2; __utmz=138229305.1480562425.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); PHPSESSID=eevee4b99frk0rhaaiobqqef71";var str_json=[];var arr=cookie.split(';');arr.forEach(function(e,i) {if (!isNaN(i)) {var item = e.split('=');if(item.length>2){var tmp=[]; tmp[0]=item[0];tmp[1]=[];item.forEach(function(cur,d){if(!isNaN(d) && d>0){tmp[1].push(e);}})tmp[1]=tmp[1].join('=')item=tmp; }str_json.push({"domain":"xxxx.com","name":item[0].trim(),"path":"/","session": false,"storeId":"0","value":item[1].trim(),"id":i})} })console.log(str_json)console.log(JSON.stringify(str_json))window.prompt('please copy',JSON.stringify(str_json))
</script>
字符串转换成JSON相关推荐
- Jquery 将后台返回的字符串转换成Json格式的数据
//code by:博客园-曹永思 第一步:将DataTable转换成 Json格式的数据 方法 一 View Code /// <summary>/// DataTable转成Json格 ...
- js中将字符串转换成json的三种方式
ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法. 1,eval方式解析,恐 ...
- json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值...
json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 原文:json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 主要内容: 一 ...
- json字符串转换成json对象
Json字符与Json对象的相互转换方式有很多,接下来将为大家一一介绍下,感兴趣的朋友可以参考下哈,希望可以帮助到你 1>jQuery插件支持的转换方式: 代码如下: $.parseJSON( ...
- python转json的函数_python将字符串转换成json的方法小结
最近在工作中遇到了一个小问题,如果要将字符串型的数据转换成dict类型,我第一时间就想到了使用json函数.但是里面出现了一些问题 1.通过json来转换: In [1]: import json I ...
- python如何将字符串转换成json的几种办法!
python如何将字符串转换成json的几种办法 最近在工作中遇到了一个小问题,如果要将字符串型的数据转换成dict类型,我第一时间就想到了使用json函数.但是里面出现了一些问题 1.通过json来 ...
- 字符串转换成json对象的方式
前言 使用ajax的开发项目过程中,经常需要将json格式的字符串返回到前端,前端解析成js对象(JSON ). 欲将以下字符串转为json对象格式: var str = '{name:"j ...
- 字符串转换成json的三种方式
使用ajax的开发项目过程中,经常需要将json格式的字符串返回到前端,前端解析成js对象(JSON ). ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5) ...
- 将html代码确析成json数据格式,JSON字符串解析成JSON数据格式
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...
最新文章
- 相关子查询中exists后select 加数字的理解
- gitHub创建 repository仓库 并推送本地代码到该仓库
- 【BZOJ3036】绿豆蛙的归宿 概率DP
- Cake -- ACM解决方法
- MySQL 服务器调优
- LDA总结 (一) 共轭分布
- grafana的前端技术_Grafana开发环境搭建
- VMware Mac 全屏问题
- 大过年的,程序员在家改bug…
- CFS完全公平调度类
- MAPX中的数据绑定问题
- 视频教程-2020华为HCIA/HCNA/数通/路由交换/实验/视频/教程/持续更新赠题库-华为认证
- 使用 LaTeX 写数学公式
- october cms_October CMS静态页面入门
- Big-Endian Little-Endian
- CSS中设置单机按钮,实现按下效果
- 区块链开发中使用的最流行的编程语言
- [生存志] 第47节 夏姬媚株林
- import lap报错ValueError
- springboot线上教学平台计算机毕业设计(源码、运行环境)