zoukankan      html  css  js  c++  java
  • 解析Json的格式.

    Javascript小弟初学不久.所以如下有什么大的笑话.多多见谅.

    因为有时得到JSON数据后.只能处后台来推断.如果后台不是我们处理.那我们怎么来得到他的格式了.如下: 

    //obj为JSON格式数据
    function jsonToString(obj)
    {
        var str = "";
        var depth = 0;
        function jsonParseString(obj)
        {
            for(var p in obj){ 
                if(Object.prototype.toString.apply(obj[p]) == "[object Array]"){               
                    str += p +":"+"\n";
                    var length = obj[p].length; 
                    for(var i =0;i<length;i++){
                        depth++;
                        jsonParseString(obj[p][i]);     
                    }          
                }
                else{
                    var con = "";
                    for(var j= 0;j<depth;j++)
                        con += "    ";
                    str += con + p + "=" + obj[p] + "\n";
                }
            } 
            depth--;    
        }   
        jsonParseString(obj);
        return str; 
    } 

    传进来的是JSON格式的数据.最先我就一递归函数.但是发现结果不对(如果JSON里有数组,会得不到数组里的分析结果)主要是因为Javascript里的字符串是值传递.

    所以想的是用全局变量.但是这个函数是给别的来调用的.不可能还去写个全局变量.
    后利用JavaScript的闭包.来达到相应效果并不用全局变量.其中深度控制也是如此.
    深度控制没有具体测试.可能如果数组里有数组.也可能数组连数组不能正确显示(这个因时间关系没有测试)
    解析结果如下:
    呵呵,有的人可能看出来了.这个是JqGrid要求的JSON格式.
  • 相关阅读:
    sublime text 2安装及使用
    C陷阱与缺陷之语法陷阱
    上门洗车APP --- Androidclient开发 之 项目结构介绍
    编写语法分析程序
    TCP header
    boost事件处理
    TP-LINK无线路由器WR340G+ 54M支持WDS
    300M无线路由器 TL-WR842N
    python 2.7 支持dict comprehension
    100M 宽带办理
  • 原文地址:https://www.cnblogs.com/zhouxin/p/1662616.html
Copyright © 2011-2022 走看看