扩展jQuery对json字符串的转换

本文介绍了如何使用jQuery扩展的功能来高效地将JSON字符串转换为对象,并提供了将各种JavaScript数据类型转换为JSON字符串的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. //扩展jQuery对json字符串的转换
  2. jQuery.extend({
  3. /***@see将json字符串转换为对象*@paramjson字符串*@return返回object,array,string等对象*/
  4. evalJSON:function(strJson){
  5. returneval("("+strJson+")");
  6. }
  7. });
  8. jQuery.extend({
  9. /***@see将javascript数据类型转换为json字符串*@param待转换对象,支持object,array,string,function,number,boolean,regexp*@return返回json字符串*/
  10. toJSON:function(object){
  11. vartype=typeofobject;
  12. if('object'==type){
  13. if(Array==object.constructor)type='array';
  14. elseif(RegExp==object.constructor)type='regexp';
  15. elsetype='object';
  16. }
  17. switch(type){
  18. case'undefined':
  19. case'unknown':
  20. return;
  21. break;
  22. case'function':
  23. case'boolean':
  24. case'regexp':
  25. returnobject.toString();
  26. break;
  27. case'number':
  28. returnisFinite(object)?object.toString():'null';
  29. break;
  30. case'string':
  31. return'"'+object.replace(/(\\|\")/g,"\\$1").replace(/\n|\r|\t/g,function(){
  32. vara=arguments[0];
  33. return(a=='\n')?'\\n':(a=='\r')?'\\r':(a=='\t')?'\\t':""
  34. })+'"';
  35. break;
  36. case'object':
  37. if(object===null)return'null';
  38. varresults=[];
  39. for(varpropertyinobject){
  40. varvalue=jQuery.toJSON(object[property]);
  41. if(value!==undefined)results.push(jQuery.toJSON(property)+':'+value);
  42. }
  43. return'{'+results.join(',')+'}';
  44. break;
  45. case'array':
  46. varresults=[];
  47. for(vari=0;i<object.length;i++){
  48. varvalue=jQuery.toJSON(object[i]);
  49. if(value!==undefined)results.push(value);
  50. }
  51. return'['+results.join(',')+']';
  52. break;
  53. }
  54. }
  55. });示例:
  56. varobj={
  57. name:"sean",
  58. friend:["fans","bruce","wawa"],
  59. action:function(){
  60. alert("gogogog")
  61. },
  62. boy:true,
  63. age:26,
  64. reg:/\b([a-z]+)\1\b/gi,
  65. child:{
  66. name:"none",
  67. age:-1
  68. }
  69. };
  70. varjson=$.toJSON(obj);
  71. varobjx=$.evalJSON(json);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值