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实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
Mar 21 Javascript
JS模拟自动点击的简单实例
Aug 08 Javascript
获取非最后一列td值并将title设为该值的方法
Oct 30 Javascript
自己用jQuery写了一个图片的马赛克消失效果
May 04 Javascript
三种取消选中单选框radio的方法
Sep 09 Javascript
JavaScript实现16进制颜色值转RGB的方法
Feb 09 Javascript
javascript中闭包(Closure)详解
Jan 06 Javascript
javascript 判断页面访问方式电脑或者移动端
Sep 19 Javascript
js图片无缝滚动插件使用详解
May 26 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
Sep 06 Javascript
ElementUI多个子组件表单的校验管理实现
Nov 07 Javascript
js实现列表向上无限滚动
Jan 13 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
php连接Access数据库错误及解决方法
2013/06/20 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
JavaScript 数组循环引起的思考
2010/01/01 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
js之onload事件的一点使用心得
2013/08/14 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
JS实现来回出现文字的状态栏特效代码
2015/10/31 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
js获取腾讯视频ID的方法
2016/10/03 Javascript
微信小程序  生命周期详解
2016/10/27 Javascript
原生js轮播(仿慕课网)
2017/02/15 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
2018/01/12 Javascript
VuePress 静态网站生成方法步骤
2019/02/14 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
python实现SMTP邮件发送功能
2020/06/16 Python
python版简单工厂模式
2017/10/16 Python
Python 3.8中实现functools.cached_property功能
2019/05/29 Python
如何实现Django Rest framework版本控制
2019/07/25 Python
Python 中pandas索引切片读取数据缺失数据处理问题
2019/10/09 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
全球最大的游戏市场:G2A
2018/07/05 全球购物
戴尔英国翻新电脑和电子产品:Dell UK Refurbished Computers
2019/07/30 全球购物
市场部规章制度
2014/01/24 职场文书
新闻编辑自荐书范文
2014/02/12 职场文书
社区助残日活动总结
2014/08/29 职场文书
接收函格式
2015/01/30 职场文书
研讨会致辞
2015/07/31 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
新手入门Mysql--概念
2021/06/18 MySQL
德劲DE1102数字调谐收音机机评
2022/04/07 无线电
实现GO语言对数组切片去重
2022/04/20 Golang