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 相关文章推荐
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
Aug 14 Javascript
JS批量修改PS中图层名称的方法
Jan 26 Javascript
跟我学习javascript的undefined与null
Nov 17 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
Dec 05 Javascript
Angular2数据绑定详解
Apr 18 Javascript
javascript 的变量、作用域和内存问题
Apr 19 Javascript
JavaScript动态加载重复绑定问题
Apr 01 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
Jun 11 Javascript
jQuery滑动效果实现方法分析
Sep 05 jQuery
Vue中使用方法、计算属性或观察者的方法实例详解
Oct 31 Javascript
使用Bootstrap做一个朝代历史表
Dec 10 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
Dec 30 jQuery
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
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
PHP静态新闻列表自动生成代码
2007/06/14 PHP
php树型类实例
2014/12/05 PHP
php微信开发之上传临时素材
2016/06/24 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
2017/01/22 Javascript
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
使用angularjs.foreach时return的问题解决
2018/09/30 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
2019/07/25 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
[43:35]TI4 循环赛第二日Liquid vs Fnatic
2014/07/11 DOTA
python聊天程序实例代码分享
2013/11/18 Python
Python处理XML格式数据的方法详解
2017/03/21 Python
python里使用正则的findall函数的实例详解
2017/10/19 Python
Pycharm远程调试openstack的方法
2017/11/21 Python
Pandas GroupBy对象 索引与迭代方法
2018/11/16 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
2019/05/28 Python
Python button选取本地图片并显示的实例
2019/06/13 Python
Python3.7黑帽编程之病毒篇(基础篇)
2020/02/04 Python
基于python爬取有道翻译过程图解
2020/03/31 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
基于python实现简单C/S模式代码实例
2020/09/14 Python
python中lower函数实现方法及用法讲解
2020/12/23 Python
瑜伽国际:Yoga International
2018/04/18 全球购物
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
什么是servlet
2012/05/08 面试题
烹调加工管理制度
2014/02/04 职场文书
2014年党课学习心得体会
2014/07/08 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
R9700摩机记
2022/04/05 无线电