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("");
}
};
分享到:
相关推荐
是开源库Apache Commons的一个组件,提供了Java对象与JSON对象之间的转换功能。下面将详细阐述如何使用`JSONObject`进行JSON操作。 ### 1. 解析JSON字符串 当你从服务器获取或从文件读取到一个JSON字符串时,可以...
在实际开发中,我们经常需要在`String`对象与JSON对象之间进行转换,以满足不同的需求。本文将深入探讨`String`与JSON的互转方法,并提供一个简单的测试案例。 一、`String`转`JSON` 1. 使用`org.json`库 `org....
4. 将JSON对象转换为C++对象:解析后的JSON对象`j`可以直接赋值给C++类的对象,这得益于nlohmann/json库的模板魔法。假设我们有一个`Person`对象`p`,可以这样转换: ```cpp Person p; p = j.get(); ``` 5. 遍历...
`json_to_string.jsontostring`这个文件名可能指的是一个示例程序或脚本,用于演示JSON对象到字符串的转换过程。这个压缩包可能包含了代码示例,帮助用户理解和实现这一转换操作。 总之,JSON到字符串的转换是编程...
4. JSON对象转换为Map: ```java String jsonObject = "{\"users\":[{\"id\":1,\"name\":\"John\"},{\"id\":2,\"name\":\"Jane\"}],\"company\":\"XYZ\"}"; Map<String, Object> map = mapper.readValue(jsonObject...
使用 Json SuperObject,我们可以轻松地将数据集转换为 JSON 对象,也可以将 JSON 对象转换为数据集。 接下来,我们将详细介绍如何使用 Json SuperObject 将数据集与 JSON 对象互转。 首先,我们需要定义一个类 ...
在提供的代码片段中,`DeleteByIds`函数展示了如何使用`toJSON`函数将由`CheckBox.GetCheckedIds()`返回的数组转换为JSON对象,然后通过Ajax请求发送到服务器进行删除操作。这表明,在实际开发中,将数据转换为JSON...
最近在研究Webservice的时候遇到一个问题,把java对象转化问json后传过去,接受的是String类型,怎么恢复到原来的java对象呢,后来再一个项目中看到了转换方法,转换顺序为javaBean--jsonObject--jsonString,还原...
### JS中Json对象 #### JSON概述 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON是基于JavaScript的一个子集,采用完全独立于编程语言的文本...
Gson是Google提供的一个Java库,它能够将Java对象转换为JSON字符串,同时也能将JSON数据转换回等效的Java对象。在Android中,我们通常会创建一个工具类来封装这些转换操作,例如名为`GsonUtil`的类。 以下是一个...
在Java编程中,将JSON对象转换为Java Bean对象是一个常见的任务,特别是在处理Web服务或API交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,而Java Bean是符合特定规范的Java类,通常用于...
NULL 博文链接:https://why-rj.iteye.com/blog/1009800
在JavaScript开发中,有时我们需要将JSON对象转换为JSON Schema,以便对数据进行验证。这在处理用户输入、API交互或者存储复杂数据结构时非常有用。`jsonToSchema`项目可能就是一个工具或库,用于帮助开发者实现这个...
标题和描述提及的是将JSON字符串转换为Java对象,特别是涉及多层嵌套和List集合的情况。这在处理复杂数据结构时非常常见,比如服务器返回的响应可能包含嵌套的对象和数组。下面我们将详细介绍如何使用Jackson库来...
三、Java对象到JSON对象转换 1. 对象到JSON字符串:使用Gson或Jackson的相应方法,将Java对象转换为JSON字符串。 2. 集合到JSON:如果需要转换的是List或其他集合类型,可以使用`TypeToken`类来指定泛型类型,避免...
这个过程涉及将JSON对象转换为`JSONObject`,创建一个类映射,然后使用`toBean()`方法将JSON对象转换为对应的Java实例。注意,为了支持多层List集合,我们需要确保所有相关的Java类都有对应的getter和setter方法,...
在Java开发中,我们经常需要将JSON字符串与Java对象之间进行转换,以便在服务器端处理来自客户端的数据,或者将数据以JSON格式发送回客户端。这里我们将重点讨论两种常用的库:Gson和Jackson,它们都提供了方便的...
要将JavaBean对象转换为JsonString,我们可以使用一些流行的JSON库,如Jackson、Gson或Fastjson。以Jackson为例,首先需要在项目中引入Jackson库,然后可以使用`ObjectMapper`类的`writeValueAsString()`方法: `...
第一个方法需要指定JSON对象的名称(jsonName),第二个方法会自动取列表中第一个元素的类型名作为JSON对象的名称。这两个方法的核心是遍历列表中的每个元素,获取其所有公共属性,并将属性值转换为字符串,然后构建...
C# json格式转换,Json格式字符串与C#对象相互转换,类库和测试demo 写了一个json与C#对象相互装换的类库,直接调用就行,有测试案例,代码注释非常详细 部分方法: /// 将Json字符串解析为C#中的对象 /// Json格式...