Javascript json object 与string 相互转换的简单实现


Posted in Javascript onSeptember 27, 2016

Javascript json object 与string 相互转换的简单实现

function obj2str(o){
  var r = [];
  if(typeof o == "string" || o == null) {
   return o;
  }
  if(typeof o == "object"){
   if(!o.sort){
    r[0]="{"
    for(var i in o){
     r[r.length]=i;
     r[r.length]=":";
     r[r.length]=obj2str(o[i]);
     r[r.length]=",";
    }
    r[r.length-1]="}"
   }else{
    r[0]="["
    for(var i =0;i<o.length;i++){
     r[r.length]=obj2str(o[i]);
     r[r.length]=",";
    }
    r[r.length-1]="]"
   }
   return r.join("");
  }
  return o.toString();
}

string 转 object

function taoRan(){
var str='{"result": [["提现", "219"], ["提现银行", "121"], ["退款", "272"], ["提现失败", "16"], ["团购", "15"], ["淘宝", "412"],["台湾", "58"], ["提现限额", "16"], ["提现时间", "81"], ["台湾认证", "26"]]}';
alert(strToObj(str).result[2]);
}
function strToObj(json){ 
     return eval("("+json+")"); 
}

非常好用的JsonToString方法

//'
Jsontostring代码 
function JsonToString(o) {  
  var arr = []; 
  var fmt = function(s) { 
    if (typeof s == 'object' && s != null) return JsonToStr(s); 
    return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s; 
  } 
  for (var i in o) 
     arr.push("'" + i + "':" + fmt(o[i])); 
  return '{' + arr.join(',') + '}'; 
}

我反正用的很爽,哈哈

另外: 如果不想json中的数字也被字符串化. 可以改造: return /^(string|number)$/.test(typeof s) ? '"' + s + '"' : s; 为 : return /^(string)$/.test(typeof s) ? '"' + s + '"' : s; (其实就是把number类型的忽略掉而已)

function O2String(O) {
//return JSON.stringify(jsonobj); 
var S = [];
var J = "";
if (Object.prototype.toString.apply(O) === '[object Array]') {
  for (var i = 0; i < O.length; i++)
    S.push(O2String(O[i]));
  J = '[' + S.join(',') + ']';
}
else if (Object.prototype.toString.apply(O) === '[object Date]') {
  J = "new Date(" + O.getTime() + ")";
}
else if (Object.prototype.toString.apply(O) === '[object RegExp]' || Object.prototype.toString.apply(O) === '[object Function]') {
  J = O.toString();
}
else if (Object.prototype.toString.apply(O) === '[object Object]') {
  for (var i in O) {
    O[i] = typeof (O[i]) == 'string' ? '"' + O[i] + '"' : (typeof (O[i]) === 'object' ? O2String(O[i]) : O[i]);
    S.push('"' + i + '":' + O[i]);
  }
  J = '{' + S.join(',') + '}';
}
return J;
};

JSON.stringify(jsonobj)

JSON.stringify(jsonobj),本来是最简便的方法,可是存在浏览器兼容问题(仅适用于IE8+,Chrome 1+,FF 3+)

以上就是小编为大家带来的Javascript json object 与string 相互转换的简单实现的全部内容了,希望对大家有所帮助,多多支持三水点靠木~

Javascript 相关文章推荐
jquery中ajax学习笔记4
Oct 16 Javascript
浅谈Javascript变量作用域问题
Dec 16 Javascript
jQuery使用之处理页面元素用法实例
Jan 19 Javascript
jQuery实现首页顶部可伸缩广告特效代码
Apr 15 Javascript
js简单正则验证汉字英文及下划线的方法
Nov 28 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
Jun 26 jQuery
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
May 28 Javascript
angular使用md5,CryptoJS des加密的方法
Jun 03 Javascript
微信小程序实现Swiper轮播图效果
Nov 22 Javascript
微信小程序用canvas画图并分享
Mar 09 Javascript
JS Web Flex弹性盒子模型代码实例
Mar 10 Javascript
微信小程序实现可长按移动控件
Nov 01 Javascript
js转html实体的方法
Sep 27 #Javascript
JSON与String互转的实现方法(Javascript)
Sep 27 #Javascript
通过JS获取Request.QueryString()参数的值实现方法
Sep 27 #Javascript
微信小程序使用第三方库Underscore.js步骤详解
Sep 27 #Javascript
微信小程序使用第三方库Immutable.js实例详解
Sep 27 #Javascript
微信小程序 在Chrome浏览器上运行以及WebStorm的使用
Sep 27 #Javascript
微信小程序 开发指南详解
Sep 27 #Javascript
You might like
调频问题解答
2021/03/01 无线电
PHP递归实现层级树状展开
2016/04/01 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
2017/04/05 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
详解PHP中curl_multi并发的实现
2020/06/08 PHP
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
2013/12/20 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
2015/04/06 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
微信小程序 选项卡的简单实例
2017/05/24 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
小程序组件之仿微信通讯录的实现代码
2018/09/12 Javascript
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
[01:17:47]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
python使用pil生成缩略图的方法
2015/03/26 Python
利用Python如何生成便签图片详解
2018/07/09 Python
python实现旋转和水平翻转的方法
2018/10/25 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
荷兰皇家航空公司官方网站:KLM Royal Dutch Airlines
2017/12/07 全球购物
Viking比利时:购买办公用品
2019/10/30 全球购物
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
医学专业个人求职自荐信格式
2013/09/23 职场文书
金属材料工程个人求职的自我评价
2013/12/04 职场文书
承办会议欢迎词
2014/01/17 职场文书
家长对孩子评语
2014/01/30 职场文书
《神奇的克隆》教学反思
2014/04/10 职场文书
正科级干部考察材料
2014/05/29 职场文书
幼儿教师2014年度工作总结
2014/12/16 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书