`
zscomehuyue
  • 浏览: 417968 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

json对象到string转换

阅读更多
   var JsonUti = {
            //定义换行符
            n: "\n",
            //定义制表符
            t: "\t",
            //转换String
            convertToString: function(obj) {
                return JsonUti.__writeObj(obj, 1);
            },
            //写对象
            __writeObj: function(obj    //对象
                    , level             //层次(基数为1)
                    , isInArray) {       //此对象是否在一个集合内
                //如果为空,直接输出null
                if (obj == null) {
                    return "null";
                }
                //为普通类型,直接输出值
                if (obj.constructor == Number || obj.constructor == Date || obj.constructor == String || obj.constructor == Boolean) {
                    var v = obj.toString();
                    var tab = isInArray ? JsonUti.__repeatStr(JsonUti.t, level - 1) : "";
                    if (obj.constructor == String || obj.constructor == Date) {
                        //时间格式化只是单纯输出字符串,而不是Date对象
                        return tab + ("\"" + v + "\"");
                    }
                    else if (obj.constructor == Boolean) {
                        return tab + v.toLowerCase();
                    }
                    else {
                        return tab + (v);
                    }
                }

                //写Json对象,缓存字符串
                var currentObjStrings = [];
                //遍历属性
                for (var name in obj) {
                    var temp = [];
                    //格式化Tab
                    var paddingTab = JsonUti.__repeatStr(JsonUti.t, level);
                    temp.push(paddingTab);
                    //写出属性名
                    temp.push(name + " : ");

                    var val = obj[name];
                    if (val == null) {
                        temp.push("null");
                    }
                    else {
                        var c = val.constructor;

                        if (c == Array) { //如果为集合,循环内部对象
                            temp.push(JsonUti.n + paddingTab + "[" + JsonUti.n);
                            var levelUp = level + 2;    //层级+2

                            var tempArrValue = [];      //集合元素相关字符串缓存片段
                            for (var i = 0; i < val.length; i++) {
                                //递归写对象                        
                                tempArrValue.push(JsonUti.__writeObj(val[i], levelUp, true));
                            }

                            temp.push(tempArrValue.join("," + JsonUti.n));
                            temp.push(JsonUti.n + paddingTab + "]");
                        }
                        else if (c == Function) {
                            temp.push("[Function]");
                        }
                        else {
                            //递归写对象
                            temp.push(JsonUti.__writeObj(val, level + 1));
                        }
                    }
                    //加入当前对象“属性”字符串
                    currentObjStrings.push(temp.join(""));
                }
                return (level > 1 && !isInArray ? JsonUti.n : "")                       //如果Json对象是内部,就要换行格式化
                    + JsonUti.__repeatStr(JsonUti.t, level - 1) + "{" + JsonUti.n     //加层次Tab格式化
                    + currentObjStrings.join("," + JsonUti.n)                       //串联所有属性值
                    + JsonUti.n + JsonUti.__repeatStr(JsonUti.t, level - 1) + "}";   //封闭对象
            },
            __isArray: function(obj) {
                if (obj) {
                    return obj.constructor == Array;
                }
                return false;
            },
            __repeatStr: function(str, times) {
                var newStr = [];
                if (times > 0) {
                    for (var i = 0; i < times; i++) {
                        newStr.push(str);
                    }
                }
                return newStr.join("");
            }
        };
分享到:
评论
1 楼 zhouxg0105 2011-08-23  
,我去网上找json.js,与jquery1.4冲突,看了你写的,好用!

相关推荐

    用于java对象与json对象间的相互转换(net.sf.json.JSONObject)

    是开源库Apache Commons的一个组件,提供了Java对象与JSON对象之间的转换功能。下面将详细阐述如何使用`JSONObject`进行JSON操作。 ### 1. 解析JSON字符串 当你从服务器获取或从文件读取到一个JSON字符串时,可以...

    string 对象 与json互转

    在实际开发中,我们经常需要在`String`对象与JSON对象之间进行转换,以满足不同的需求。本文将深入探讨`String`与JSON的互转方法,并提供一个简单的测试案例。 一、`String`转`JSON` 1. 使用`org.json`库 `org....

    json字符串转换c++类对象

    4. 将JSON对象转换为C++对象:解析后的JSON对象`j`可以直接赋值给C++类的对象,这得益于nlohmann/json库的模板魔法。假设我们有一个`Person`对象`p`,可以这样转换: ```cpp Person p; p = j.get(); ``` 5. 遍历...

    json_to_string.rar_JSON_json string_json to Stri_json to string_

    `json_to_string.jsontostring`这个文件名可能指的是一个示例程序或脚本,用于演示JSON对象到字符串的转换过程。这个压缩包可能包含了代码示例,帮助用户理解和实现这一转换操作。 总之,JSON到字符串的转换是编程...

    json格式与java类对象相互转换

    4. JSON对象转换为Map: ```java String jsonObject = "{\"users\":[{\"id\":1,\"name\":\"John\"},{\"id\":2,\"name\":\"Jane\"}],\"company\":\"XYZ\"}"; Map&lt;String, Object&gt; map = mapper.readValue(jsonObject...

    Delphi中JSon SuperObject 使用数据集与JSON对象互转.docx

    使用 Json SuperObject,我们可以轻松地将数据集转换为 JSON 对象,也可以将 JSON 对象转换为数据集。 接下来,我们将详细介绍如何使用 Json SuperObject 将数据集与 JSON 对象互转。 首先,我们需要定义一个类 ...

    将数组转换成JSON对象

    在提供的代码片段中,`DeleteByIds`函数展示了如何使用`toJSON`函数将由`CheckBox.GetCheckedIds()`返回的数组转换为JSON对象,然后通过Ajax请求发送到服务器进行删除操作。这表明,在实际开发中,将数据转换为JSON...

    javaBean--jsonObject--jsonString相互转化

    最近在研究Webservice的时候遇到一个问题,把java对象转化问json后传过去,接受的是String类型,怎么恢复到原来的java对象呢,后来再一个项目中看到了转换方法,转换顺序为javaBean--jsonObject--jsonString,还原...

    JS中Json对象

    ### JS中Json对象 #### JSON概述 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON是基于JavaScript的一个子集,采用完全独立于编程语言的文本...

    安卓 JSON实现对象和数组的相互转换

    Gson是Google提供的一个Java库,它能够将Java对象转换为JSON字符串,同时也能将JSON数据转换回等效的Java对象。在Android中,我们通常会创建一个工具类来封装这些转换操作,例如名为`GsonUtil`的类。 以下是一个...

    拷贝JSON对象值进Java Bean对象

    在Java编程中,将JSON对象转换为Java Bean对象是一个常见的任务,特别是在处理Web服务或API交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,而Java Bean是符合特定规范的Java类,通常用于...

    String转化为JSON对象

    NULL 博文链接:https://why-rj.iteye.com/blog/1009800

    json转换jsonschema

    在JavaScript开发中,有时我们需要将JSON对象转换为JSON Schema,以便对数据进行验证。这在处理用户输入、API交互或者存储复杂数据结构时非常有用。`jsonToSchema`项目可能就是一个工具或库,用于帮助开发者实现这个...

    解析Json字符串直接转换为对象(包括多层List集合 嵌套)所用jar包

    标题和描述提及的是将JSON字符串转换为Java对象,特别是涉及多层嵌套和List集合的情况。这在处理复杂数据结构时非常常见,比如服务器返回的响应可能包含嵌套的对象和数组。下面我们将详细介绍如何使用Jackson库来...

    Java对Json的一系列操作(构建、json与对象的转换)

    三、Java对象到JSON对象转换 1. 对象到JSON字符串:使用Gson或Jackson的相应方法,将Java对象转换为JSON字符串。 2. 集合到JSON:如果需要转换的是List或其他集合类型,可以使用`TypeToken`类来指定泛型类型,避免...

    Java中Json字符串直接转换为对象的方法(包括多层List集合)

    这个过程涉及将JSON对象转换为`JSONObject`,创建一个类映射,然后使用`toBean()`方法将JSON对象转换为对应的Java实例。注意,为了支持多层List集合,我们需要确保所有相关的Java类都有对应的getter和setter方法,...

    JSON与JAVA对象之间的转换

    在Java开发中,我们经常需要将JSON字符串与Java对象之间进行转换,以便在服务器端处理来自客户端的数据,或者将数据以JSON格式发送回客户端。这里我们将重点讨论两种常用的库:Gson和Jackson,它们都提供了方便的...

    JavaBean与JsonString的相互转换

    要将JavaBean对象转换为JsonString,我们可以使用一些流行的JSON库,如Jackson、Gson或Fastjson。以Jackson为例,首先需要在项目中引入Jackson库,然后可以使用`ObjectMapper`类的`writeValueAsString()`方法: `...

    Unity3D中任意类型数据转换成json数据的方法2

    第一个方法需要指定JSON对象的名称(jsonName),第二个方法会自动取列表中第一个元素的类型名作为JSON对象的名称。这两个方法的核心是遍历列表中的每个元素,获取其所有公共属性,并将属性值转换为字符串,然后构建...

    C# json格式解析,Json格式字符串与C#对象相互转换,类库+使用案例,注释详细

    C# json格式转换,Json格式字符串与C#对象相互转换,类库和测试demo 写了一个json与C#对象相互装换的类库,直接调用就行,有测试案例,代码注释非常详细 部分方法: /// 将Json字符串解析为C#中的对象 /// Json格式...

Global site tag (gtag.js) - Google Analytics