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相关推荐

  1. Jquery 将后台返回的字符串转换成Json格式的数据

    //code by:博客园-曹永思 第一步:将DataTable转换成 Json格式的数据 方法 一 View Code /// <summary>/// DataTable转成Json格 ...

  2. js中将字符串转换成json的三种方式

    ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法. 1,eval方式解析,恐 ...

  3. json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值...

    json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 原文:json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 主要内容: 一 ...

  4. json字符串转换成json对象

    Json字符与Json对象的相互转换方式有很多,接下来将为大家一一介绍下,感兴趣的朋友可以参考下哈,希望可以帮助到你 1>jQuery插件支持的转换方式: 代码如下: $.parseJSON( ...

  5. python转json的函数_python将字符串转换成json的方法小结

    最近在工作中遇到了一个小问题,如果要将字符串型的数据转换成dict类型,我第一时间就想到了使用json函数.但是里面出现了一些问题 1.通过json来转换: In [1]: import json I ...

  6. python如何将字符串转换成json的几种办法!

    python如何将字符串转换成json的几种办法 最近在工作中遇到了一个小问题,如果要将字符串型的数据转换成dict类型,我第一时间就想到了使用json函数.但是里面出现了一些问题 1.通过json来 ...

  7. 字符串转换成json对象的方式

    前言 使用ajax的开发项目过程中,经常需要将json格式的字符串返回到前端,前端解析成js对象(JSON ). 欲将以下字符串转为json对象格式: var str = '{name:"j ...

  8. 字符串转换成json的三种方式

    使用ajax的开发项目过程中,经常需要将json格式的字符串返回到前端,前端解析成js对象(JSON ). ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5)  ...

  9. 将html代码确析成json数据格式,JSON字符串解析成JSON数据格式

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

最新文章

  1. 相关子查询中exists后select 加数字的理解
  2. gitHub创建 repository仓库 并推送本地代码到该仓库
  3. 【BZOJ3036】绿豆蛙的归宿 概率DP
  4. Cake -- ACM解决方法
  5. MySQL 服务器调优
  6. LDA总结 (一) 共轭分布
  7. grafana的前端技术_Grafana开发环境搭建
  8. VMware Mac 全屏问题
  9. 大过年的,程序员在家改bug…
  10. CFS完全公平调度类
  11. MAPX中的数据绑定问题
  12. 视频教程-2020华为HCIA/HCNA/数通/路由交换/实验/视频/教程/持续更新赠题库-华为认证
  13. 使用 LaTeX 写数学公式
  14. october cms_October CMS静态页面入门
  15. Big-Endian Little-Endian
  16. CSS中设置单机按钮,实现按下效果
  17. 区块链开发中使用的最流行的编程语言
  18. [生存志] 第47节 夏姬媚株林
  19. import lap报错ValueError
  20. springboot线上教学平台计算机毕业设计(源码、运行环境)

热门文章

  1. Java 架构师眼中的 HTTP 协议
  2. TCP网络编程之chat聊天室
  3. 转载:关于NERO7刻录软件的使用
  4. 2000个工作汇报PPT模板免费下载
  5. 基于win10的hyper-v安装openwrt与zerotier实现内网穿透及异地组网
  6. 晕菜~~~竟然出了这样的事情~~
  7. NDK开发(四):仿QQ变声
  8. 通用 Mapper @KeySql 注解 genId 方法详解
  9. 穿戴式心电信号采集系统设计(任务书+lunwen+答辩PPt+查重报告)
  10. 计算机科学与技术优劣,计算机科学与技术专业优势多多