这段时间可把JavaScript学得透彻了,发现还是非常好用的。

我在网上找了很多这样的例子,发现都写的好多,总感觉应该是很简单的,想想应该用递归调用一下应该不难吧,后来自己试了一下还算不难,看来学好算法还是有好处的,呵呵(自夸一下)
利用了Javascript的反射机制(JavaScript真是太强了)与递归的算法很方便就把功能实现了。

好了,共享出来给大家做个参考:
本方法支持子对象,数组等多种形式。字符、数字、布尔型变量都可以识别。

function json_from_object(o)
{
    if(o == null)
        return 'null';
    var s = '';
    switch(typeof(o))
    {
        case 'object':
            
            if(o.constructor == Array)        // checks if it is an array [,,,]
            {
                
                for(var i=0; i<o.length; ++i)
                {
                    s += json_from_object(o[i]);

                    if(i < o.length -1)
                        s += ',';
                }

                return '[' + s + ']';
            }
            else
            {
                for(var p in o)
                {
                    if(typeof(o[p])!="function"){
                        s += "'" + p +"':" + json_from_object(o[p]);
                        s += ',';
                    }
                }
                return '{' + s.substring(0,s.length-1) + '}';
            }
            break;
        case 'string':
            return '\'' + o.replace(/(["\\])/g, '\\$1') + '\'';
        default:
            return String(o);
    }
}

调用实例也很简单:
function Test1() {
 this.sName = '';
 this.sCode = '';
 this.iNum = 0;
}
 
var obj=new Test1();
obj.sName = "lbq";
 obj.sCode = "1111";
 obj.iNum = 100; 
 alert( json_from_object(obj));

转载于:https://www.cnblogs.com/liubiqu/archive/2008/04/22/1164788.html

[原创]用递归写的一个object 转换成JSON的函数相关推荐

  1. 我写的一个给time_t赋值的小函数

    我写的一个给time_t赋值的小函数 //======================================== // 功能:将固定格式的时间转化为 time_t 日历时间 //       ...

  2. 用js写出数据结构中的自定义队列,利用队列思想写出一个击鼓传花的游戏函数,优先级队列

    队列的核心是先进先出 1.用js写出数据结构中的自定义队列 class Queue{constructor(){this.item = [];}// 1.入队enqueue(ele){this.ite ...

  3. VBA,关于filter()函数的局限性和原理,自己写了一个仿造filter同功能自定义函数

    1 filter() 函数的局限性 1.1 filter() 非精确查找,是模糊查询,类似于 like 的功能 filter() 非精确查找,是模糊查询,类似于 like 的功能 1.2 Filter ...

  4. 分享一个小工具:Excel表高速转换成JSON字符串

    在游戏项目中一般都须要由策划制作大量的游戏内容,当中非常大一部分是使用Excel表来制作的.于是程序就须要把Excel文件转换成程序方便读取的格式. 之前项目使用的Excel表导入工具都是通过Offi ...

  5. C++把一个字符转换成string方法

    C++把一个字符转换成string方法 原网址:https://zhidao.baidu.com/question/492029810.html 单个字符无法直接转换为string 间接的方式有以下两 ...

  6. python读取一个TXT转换成EXCEL表格

    [任务]:python读取一个TXT转换成EXCEL表格 [坑1]pycharm安装后代码区不能编辑,是由于最新的pycharm在安装时自动装了vimVim插件, 方法一:在tools-Vim emu ...

  7. 在 Linux 中把一个网页转换成 PDF的技巧介绍

    你如何在 Linux 中把一个网页转换成 PDF?你可以选择使用每个 Linux 发行版上的网页浏览器(GUI),或者使用终端将网页变成 PDF 文件. 在这里,我将提到这两种方法来帮助你完成工作. ...

  8. java 把ascll转换成char_java中 怎么把一个ascii转换成字符串

    java中 怎么把一个ascii转换成字符串 关注:275  答案:3  信息版本:手机版 电脑版 解决时间 2021-01-18 08:53 提问者壹玍徴戰何亽陪 2021-01-17 22:42 ...

  9. 把一个整数转换成十六进制数

    把一个整数转换成十六进制数 public class Test {public static void main(String[] args) {String s = decChangeHex(125 ...

最新文章

  1. 对matlab中colormap的解释及fill、imshow的用法说明
  2. 深度洞见|体验经济浪潮兴起,什么才是企业制胜密钥?
  3. php字符串处理面试题,关于PHP字符串的一道面试题
  4. QImage setPixel
  5. 磁共振成像(MRI)影像心脏组织分割
  6. webpack4.0关闭开发环境的代码压缩UglifyJsPlugin
  7. The conda.compat module is deprecated and will be removed in a future releas错误记录
  8. 中国大学慕课——程序设计与算法(一)第二周测验
  9. 可视计算机应用李桂清,华南理工大学研究生导师介绍---李桂清
  10. nuke linux 插件,NUKE插件:通过环境变量设置NUKE GIZMO插件
  11. MyBatis在Spring中的事务管理
  12. C++中string.size()函数 踩坑
  13. *7-2 CCF 2015-09-2 日期计算
  14. html padding顺序,html中padding用法
  15. 快手集福气中国牛 2021快手集福卡活动规则
  16. 微信小程序promise接口封装
  17. 安装mysql57遇到的坑,亲测安装成功(Win10)
  18. IOS Modal Segue和Unwind Segue的使用Demo-附完整工程
  19. vue 使用MD5加密
  20. 寺冈labelnet使用说明_用TensorFlow训练一个目标检测器(手把手教学版)

热门文章

  1. “史上最全PyTorch资源汇总“(转载)
  2. VS Code关联vivado并安装Verilog插件
  3. 【本人秃顶程序员】synchronized锁住的是代码还是对象
  4. jvm 内存结构默写
  5. Java查找数组重复元素,并打印重复元素、重复次数、重复元素位置
  6. C# Levenshtein计算字符串的相似度
  7. 【git效率篇】在window上面的git bash 配置永久别名 快捷方式
  8. 获取汉字的首字母(转)
  9. windows防火墙支持FTP服务的设置方法
  10. Ti公司DSP的DSK、EVM、DDK的区别