将后台程序(如php)发送过来的json数据转化为javascript的数组或者对象的方法十分简单,代码如下:

// 假设后台发送的json数据为 '{a:2,b:1}' 存储于str中

var data = eval( '(' + str + ')' );

然而想将一个javascript对象转化为json格式的字符串却并不那么简单,特别是对象的属性值递归包含一个对象时(如 var obj={a:[2,3],b:{m:[3,4],n:2} } ),那么有没有什么方法将obj转化为json格式的字符串呢?

当然你可以自己写一个函数,递归遍历一个对象并将其转化为json格式的字符串,对于大部分人来说这有些困难并容易出错。幸好已经有人做好了这件事情,你只用包含一段javascript代码即可。

使用方法:

var obj={a:[2,3],b:{m:[3,4],n:2} };

var jsonStr = JSON.stringify( obj );

alert(jsonStr);

//将显示 {"a":[2,3],"b":{"m":[3,4],"n":2}}

假如有两个变量,我要将a转换成字符串,将b转换成JSON对象:

var a={"name":"tom","sex":"男","age":"24"};

var b='{"name":"Mike","sex":"女","age":"29"}';

在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法。JSON.stringify(obj)将JSON转为字符串。JSON.parse(string)将字符串转为JSON格式;

上面的转换可以这么写:

var a={"name":"tom","sex":"男","age":"24"};

var b='{"name":"Mike","sex":"女","age":"29"}';

var aToStr=JSON.stringify(a);

var bToObj=JSON.parse(b);

alert(typeof(aToStr)); //string

alert(typeof(bToObj));//object

JSON.stringify()

ie8(兼容模式),ie7和ie6没有JSON对象,不过http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;你可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。ie8(兼容模式),ie7和ie6可以使用eval()将字符串转为JSON对象:

var c='{"name":"Mike","sex":"女","age":"29"}';

var cToObj=eval("("+c+")");

alert(typeof(cToObj));

jQuery中也有将字符串转为JSON格式的方法jQuery.parseJSON( json ),接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript (JSON)对象。当然如果有兴趣可以自己封装一个jQuery扩展,jQuery.stringifyJSON(obj)将JSON转为字符串。

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

var O2String = function (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;

};

使用方法也很简单:

var jsonStr = O2String(

[

{

"Page": "plan",

"Custom":

[

{

"ItemName": "CustomLabel1",

"ItemContent": 1,

"IsItem": true,

"ItemDate": new Date(1320774905467),

"ItemReg": /[\w]*?/gi,

"ItemFunc": function () { alert("ItemFunc"); }

},

{

"ItemName": "CustomLabel1",

"ItemContent": 1,

"IsItem": true,

"ItemDate": new Date(1320774905467),

"ItemReg": /[\w]*?/gi,

"ItemFunc": function () { alert("ItemFunc"); }

}

]

},

{

"Page": "project",

"Custom":

[

{

"ItemName": "CustomLabel2",

"ItemContent": 2,

"IsItem": false,

"ItemDate": new Date(1320774905467),

"ItemReg": /[\w]*?/gi,

"ItemFunc": function () { alert("ItemFunc"); }

},

{

"ItemName": "CustomLabel2",

"ItemContent": 2,

"IsItem": false,

"ItemDate": new Date(1320774905467),

"ItemReg": /[\w]*?/gi,

"ItemFunc": function () { alert("ItemFunc"); }

}

]

}

]

);

alert(jsonStr);

var jsonObj = eval("(" + jsonStr + ")");

alert(jsonObj.length);

php中json对象转字符串,JSON对象转字符串的一些方法相关推荐

  1. ajax中json和文本的区别,json格式字符串--json对象 【ajax_responseText】重点

    JSON.parse(string) JSON.Stringify(object)document.getElementById("id").value=jsonObj    // ...

  2. (转)解决fasterxml中string字符串转对象json格式错误问题(无引号 单引号问题)...

    原文地址:解决fasterxml中string字符串转对象json格式错误问题 com.fasterxml.jackson.databind.ObjectMapper mapper = new com ...

  3. layui中的table使用心得,json格式处理,json转字符串,json转对象,json转对象数组,layui表格图片显示修改。

    文章目录 案例一.layui中table,后台数据是json格式的处理 1. 前端显示样式 2. 前端代码 3. 后端代码:layui前端表格需要返回的数据格式要求示例 4. json格式处理工具类: ...

  4. php中json字符串转json对象数组对象,php – 将JSON字符串解析为数组,而不是对象

    您正在尝试将对象视为数组,而对象不是数组,它是一个对象. 每次在JSON中看到{}时,这意味着"这些神圣括号中包含的内容是动态对象".当你看到[]时,这意味着"看哪!我是 ...

  5. Gson把对象转成json格式的字符串

    近期在做一个java web service项目,须要用到jason,本人对java不是特别精通,于是開始搜索一些java平台的json类库. 发现了google的gson.由于之前对于protoco ...

  6. json字符串与对象互相转换

    阿里巴巴fastJson Fastjson是一个Java语言编写的JSON处理器. 1.遵循http://json.org标准,为其官方网站收录的参考实现之一. 2.功能qiang打,支持JDK的各种 ...

  7. 把对象转换成JSON字符串 第二稿支持移动设备

    /*** 导入jackson包 把对象转换成JSON字符串 第二稿 支持移动设备* @param pn* @param request* @return*/@RequestMapping(value ...

  8. JSON字符串和对象 的转换

    一  通过eval() 函数可以将JSON字符串转化为对象 var obj = eval('(' + str + ')'); 或者 var obj = str.parseJSON(); //由JSON ...

  9. java map转json字符串_Java-Gso-json字符串解析-php后台返回字段类型可能为字符串(/空字符串)或者对象的情况...

    其实本来android前端定义的对象类型是对象,如果后台没有值的情况下,理论上给null,如果是数组给[]或者null都可以的.这样Gson再解析转换的时候就不会出问题!但是最近重构发现后台如果没有字 ...

  10. java jsonobject 转对象_解析JSON中JSONObject的高级使用

    文末会有读者福利 简介: 在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON.JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于 ...

最新文章

  1. RunC 轻量级 容器运行工具 简介
  2. 如何用架构师思维解读区块链技术?
  3. HTTP协议理解——计算机网络
  4. AMD中国:没有对拼多多及其平台上任何店铺授权
  5. mysql group by_MySQL优化GROUP BY方案
  6. 机器学习实战(十四)Pegasos(原始估计子梯度求解器)
  7. PHP计算字符串的个数
  8. LeNet卷积神经网络
  9. css3兼容IE8的方案 各个ie的hack
  10. 纯php代码进行删除数据操作
  11. SharePoint Designer 2010 简介 - SharePoint Designer - Office.com
  12. 初步了解JS的作用域
  13. 计算机网络1-6合集
  14. 大数据可视化技术——平行坐标图、成对关系图、高级折线图
  15. idea自动生成bean实体对象
  16. YumRepo Error: All mirror URLs are not using ftp, http[s] or file解决办法
  17. Ubuntu kylin 14.04下的spark1.0.1安装
  18. EPICS记录参考--Select记录(sel)
  19. Vue报错-npm ERR,missing script: serve npm ERR, A complete log of this run can be found in:
  20. spss实现时间序列分析过程

热门文章

  1. 如何使用MonoDevelop调试Unity3D脚本
  2. Java中使用native2ascii工具处理.properties文件
  3. python继承方式是基于原型吗_【Python】python 普通继承方式和super继承方式
  4. 中国十个亡国之君的退位诏书
  5. vue项目通讯录_vue组件--通讯录
  6. eclipse maven jersey项目搭建
  7. JAX-RS之Jersey入门
  8. Chipmump文档
  9. 表上作业法-运输问题(Java)
  10. 【迅雷VIP体验】免费获得迅雷会员,享受高速下载通道