使用json的一些注意事项:
1.加入apache commons必要的包,不然要报错
commons-beanutils
commons-collections
commons-lang
commons-logging
ezmorph
以及json的包
2.json简单理解成一个key value的数据结构即可,根据key可以找到value,其实质是对字符串的转换。
3.JSON 还可以表示一个数组对象,使用 []
包含所有元素,每个元素用逗号分隔,元素可以是任意的 Value;
Object 对象在 JSON 中是用 {}
包含一系列无序的 Key-Value 键值对表示的,实际上此处的 Object 相当于 Java 中 的 Map<String, Object>
,而不是 Java 的 Class 。注意 Key 只能用 String 表示。
参考:http://www.ibm.com/developerworks/cn/web/wa-lo-json/
4.调用eval()方法可以将一个json字符串转换为一个json对象。eval函数非常快速。它可以编译执行任何JavaScript程序,因此产生了安全性问题。当使用可信任与完善的源代码时才可以使用eval函数。
5.调用parse()方法可以获得更高的安全性和更快的处理速度。JSON解析器只能辨识JSON文本,拒绝所有脚本。提供了本地JSON支持的浏览器的JSON解析器将远快于eval函数。
6.调用stringify()方法可以将一个json对象转换为一个json字符串。SON stringifier进行反向操作,可以把JavaScript数据结构转换为JSON文本。JSON不支持循环数据结构,因此应小心不要为JSON stringifier提供循环结构。比如一个VO里面嵌套了另一个VO,而这个VO又嵌套了其他VO。var myJSONText = JSON.stringify(myObject, replacer);
如果stringify函数发现一个带有toJSON方法的对象,它将执行此方法,并且返回产生的值。这样一个对象就可以决定自己的JSON表现。
7.json中的替换函数
一个替换函数(reviver function)做为可选参数被最终结果的每一级的键(key)与值(value)调用。 每个值都将被替换函数的值代替。这可以用来将一般的类改变成伪类的实例,或者将日期字符串转变为日期对象。(http://www.dreamdu.com/blog/2008/10/19/json_in_javascript/)
myData = JSON.parse(text, function (key, value) {
var type;
if (value && typeof value === 'object') {
type = value.type;
if (typeof type === 'string' && typeof window[type] === 'function') {
return new (window[type])(value);
}
}
return value;
});
如果没有提供数组或替代函数,一个用于忽略被集成的属性的可选替代函数将被提供。如果想要所有被继承的属性,可以提供一个简单的替换函数:
var myJSONText = JSON.stringify(myObject, function (key, value) {
return value;
});
8.不能确定的数量将被替换为null。为了替代其它的值,可以像下面一样使用替换(replacer)函数
function replacer(key, value) {
if (typeof value === 'number' && !isFinite(value)) {
return String(value);
}
return value;
}
分享到:
相关推荐
JSON 需要注意的地方 JSON 需要注意的地方 JSON 需要注意的地方
在这个“JSON库使用DEMO”中,我们将探讨如何在编程中利用JSON库进行数据的序列化和反序列化,以及相关的操作。 1. **JSON的基本结构**: JSON的数据结构主要由对象(Object)和数组(Array)组成。对象是键值对的...
JavaScript JSON 使用原理与注意事项 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,它的设计灵感来源于JavaScript语法,但作为一个独立的标准,被广泛应用于各种编程语言中,包括JavaScript。...
注意,实际的代码实现会涉及到SuperMap iObjects Java的具体API,例如使用`DataFactory`类加载DWG文件,然后使用`Dataset`和`Feature`对象处理地理数据,最后使用JSON库(如Jackson或Gson)将数据转换为JSON格式。...
在Web开发中,Ajax(Asynchronous JavaScript and XML)技术被广泛用于实现页面的无刷新更新,提高用户体验。...在实际开发中,还需要注意安全问题,如避免XSS和CSRF攻击,以及优化网络传输性能,如使用GZIP压缩等。
Delphi 中使用 Json SuperObject 将数据集与 JSON 对象互转 在 Delphi 中,数据集是最常用的数据存取方式。...但是,我们需要注意 JSON 对象的格式,并正确地使用 Json SuperObject 将数据集与 JSON 对象互转。
2. 使用路径:如果查询涉及到JSON对象的深层结构,使用`path`参数可以显著提高查询效率。 3. 数据库设计:在设计数据库时,若业务需求允许,尽量避免大量JSON数据存储,转而采用关系型模式,以充分利用关系数据库的...
总的来说,正确导入和使用JSON包需要注意依赖管理,确保所有必要的jar包都已添加。在处理JSON数据时,`json-lib`提供了一系列的方法来转换Java对象和JSON之间的数据,方便开发者进行数据交换。记住,对于大型项目,...
在处理JSON数据时,还需要注意JSON的语法规则,如键必须是字符串,数据类型要正确转换等。同时,了解JSON Schema可以更有效地验证JSON数据的结构。 总之,在SSH框架下使用JSON需要确保所有组件版本的兼容性,并正确...
注意,由于`json2.js`仅在浏览器不支持JSON时才提供这些方法,所以在现代浏览器中,它们将被忽略,不会造成性能影响。 在实际开发中,确保正确处理可能出现的错误是至关重要的。`JSON.parse()`可能会抛出一个`...
需要注意的是,在当前版本中并没有包含针对JSON数组处理的模块,未来版本可能会根据用户的需求对此进行补充。现有的模块已经足够支持大多数情况下对JSON数据的操作需求。 #### 六、总结 通过Mixly提供的JSON数据...
在处理JSON数据时,有一些关键的点需要注意: 1. 键必须是字符串,用双引号包围。 2. 值如果是字符串,也需要双引号包围。 3. JSON不支持注释,如果需要添加注释,通常会在数据交换之外的地方进行。 4. JSON不支持...
在使用这些工具时,需要注意以下几点: - JSON数据必须是有效格式,否则解析可能会失败。 - 当JSON数据复杂时,`jq`可能是最佳选择,因为它提供了丰富的功能和表达式支持。 - 对于简单的提取任务,`grep`和`awk`等...
4. **注意事项**:在使用`json2.js`时,确保你的代码在调用`JSON.parse()`和`JSON.stringify()`之前,页面已经加载了`json2.js`库。如果在旧版IE中没有正确引入,这些方法将不会存在。 **关于JSON的规范与特性:** ...
在这个"Json 使用简单实例(VC)"中,我们将探讨如何在Visual C++(VC)环境下使用JSON。 首先,为了在VC(如VS2008)中处理JSON,我们需要一个JSON库。常见的C++ JSON库有RapidJSON、nlohmann/json、jsoncpp等。在...
不过,值得注意的是,尽管`json-lib`历史悠久,但现在更现代和高性能的JSON库如Jackson和Gson已经成为了主流选择。它们提供了更多的功能和更好的性能,对于新的项目,可能需要考虑使用这些更新的库。 总结来说,...
本篇文章将深入探讨如何使用Gson库解析JSON。 一、Gson简介 Gson是Google提供的一个开源项目,它能够将Java对象转换成JSON格式的字符串,同时也可以将JSON数据转换回Java对象。这种转换过程非常方便,大大简化了...
请注意,GWT中的这些JSON类会编译成JavaScript代码运行在浏览器环境中,因此它们在客户端和服务器之间传输数据时提供了高效且灵活的方式。通过这种方式,开发者可以充分利用JSON的易读性和轻量级特性,实现GWT应用...
### JSON API 使用详解 在现代软件开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,因其易于阅读和编写,同时也易于机器解析和生成的特点,在数据交互领域占据了重要的地位。对于嵌入式...
在使用 Newtonsoft.Json 库处理日期时,需要注意日期格式的正确性以及如何自定义日期的序列化方式。 1. **日期序列化问题**: - 默认情况下,Newtonsoft.Json 将日期序列化为 ISO 8601 格式,例如 `"/Date...