zoukankan      html  css  js  c++  java
  • Json格式转化为string格式

    今天在学习Jsonp的时候,想通过服务端返回一段json数据,因为使用的服务端是NodeJs,那么就需要在js文件中实现返回json。(这里不懂的同学,可以先了解一下NodeJs的基础概念,在这里,我想大家推荐一个Nodejs视频  http://www.icoolxue.com/album/show/89)。

    首先,我们有这样一个json格式

    var json={name:"xlt",age:25

    如果我们直接把上面这个”json对象“返回给客户端,那么客户端都不知道怎么接受(至于为什么客户端接受不了,可以查询一下html相关的文档),所以这个把我们就需要把这个对象转化为一个字符串,然后在返回给客户端。因此我自己写了一个转化方法

    //入口方法
    function json2str(obj)
    {
      var S = [];
      for(var i in obj){
        obj[i] = typeof obj[i] == 'string'
            ?'"'+obj[i]+'"'
            :(Object.prototype.toString.apply(obj[i]) === '[object Object]'
            ?json2str(obj[i])
            :(Object.prototype.toString.apply(obj[i]) === '[object Array]'
            ?array2str(obj[i])
            :obj[i])
             );
        S.push(i+':'+obj[i]); 
      }
        return '{'+S.join(',')+'}';
    }
    //辅助方法
    function array2str(array)
    {
        var S=[];
        var ret;
        for(var i=0;i<array.length;i++)
        {
            ret= json2str(array[i]);
            S.push(ret);
        }
        return '['+S.join(',')+']';
    }
    然后,我们现在使用这个方法,就可以得到相应的字符串,由于代码比较简单,就不做详解了。

      当然对于比较复杂的json对象,我也做了考虑。比如说

    
    
    var json={name:"xlt",age:25,sister:{name:"xlp",age:28}};
    或者更复杂的下面这种
    var json={name:"xlt",age:25,sister:[{name:"xlp",age:28},{name:"xll",age:29}]};

     最后呢,我从网上找了一些关于json转化的资料。大家可以参考一下   https://github.com/douglascrockford/JSON-js/blob/master/json2.js。

     
  • 相关阅读:
    POJ 1330 Nearest Common Ancestors(LCA Tarjan算法)
    LCA 最近公共祖先 (模板)
    线段树,最大值查询位置
    带权并查集
    转负二进制
    UVA 11437 Triangle Fun
    UVA 11488 Hyper Prefix Sets (字典树)
    UVALive 3295 Counting Triangles
    POJ 2752 Seek the Name, Seek the Fame (KMP)
    UVA 11584 Partitioning by Palindromes (字符串区间dp)
  • 原文地址:https://www.cnblogs.com/qiao-xi/p/3903251.html
Copyright © 2011-2022 走看看