`
2008shucheng
  • 浏览: 45338 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSON --- JAVA 使用方法

    博客分类:
  • AJAX
阅读更多

                              使用JSON的方法

 

JSON JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。本文将快速讲解 JSON 格式,并通过代码示例演示如何分别在客户端和服务器端进行 JSON 格式数据的处理。

 

Json必需的包

commons-httpclient-3.1.jar
commons-lang-2.4.jar
commons-logging-1.1.1.jar
json-lib-2.2.3-jdk13.jar
ezmorph-1.0.6.jar
commons-collections-3.2.1.jar

以上包可以从

http://commons.apache.org/index.html

http://json-lib.sourceforge.net/

http://ezmorph.sourceforge.net/

http://morph.sourceforge.net/

http://www.docjar.com/

中下载到。

出现java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher错误是因为没有导入ezmorph.jar文件或版本不对。

出现java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap错误是因为没有导入commons-collections.jar文件或版本不对。

Java代码转换成json代码

1.       List集合转换成json代码

List list = new ArrayList();

list.add( "first" );

list.add( "second" );

JSONArray jsonArray2 = JSONArray.fromObject( list );

2.       Map集合转换成json代码

Map map = new HashMap();

map.put("name", "json");

map.put("bool", Boolean.TRUE);

map.put("int", new Integer(1));

map.put("arr", new String[] { "a", "b" });

map.put("func", "function(i){ return this.arr[i]; }");

JSONObject json = JSONObject.fromObject(map);

3.       Bean转换成json代码

JSONObject jsonObject = JSONObject.fromObject(new JsonBean());

4.       数组转换成json代码

boolean[] boolArray = new boolean[] { true, false, true };

JSONArray jsonArray1 = JSONArray.fromObject(boolArray);

 

5. 一般数据转换成json代码

JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" );

6.       beans转换成json代码

List list = new ArrayList();

JsonBean2 jb1 = new JsonBean2();

jb1.setCol(1);

jb1.setRow(1);

jb1.setValue("xx");

JsonBean2 jb2 = new JsonBean2();

jb2.setCol(2);

jb2.setRow(2);

jb2.setValue("");

list.add(jb1);

list.add(jb2);

JSONArray ja = JSONArray.fromObject(list);

 

分享到:
评论
14 楼 liwei123bj 2011-12-05  
13 楼 slipperslivecn 2011-09-14  
12 楼 alosin 2009-11-22  
对于jsonplugin传递struts2 action中的List属性,在JavaScript中怎么解析,反馈回的数据是数组
11 楼 mikeandmore 2009-11-19  
2008shucheng 写道
xuyao 写道
效率比较差,在压力比较大的系统,生成json还不如用velocity模板

任何技术都有优缺点
对于不同的项目当然要用不同的技术来适应项目的需求
但对于一些中小型的项目还是可以选择JSON的

因为不是online serialize。所以内存压力大。
是你程序磋,不关json的事情。
10 楼 ddden 2009-11-18  
你这讲得也太基础了,怎么配置jsonconfig一点都么提。。。
9 楼 ffychina 2009-11-02  
依我之见json的处理性能完全超越xml,无论是java还是browser都比xml要快得多,而且表达的内容比xml还要丰富,我现在除了配置文件用xml之外,其他都改用json做中间数据传送了。
8 楼 bigant 2009-04-18  
2008shucheng 写道
JSON真的有这麽差吗?
我使用的时候适合JQuery一起使用的
JSON&JQuery简单易学,中小项目很适合用的。




搞笑,Google的数据传递都是用JSON的
7 楼 zozoh 2009-04-18  
hanjs 写道
看了JSON的处理,对应存在特殊字符比如""的,怎么处理的?

用 \ 转义

关于 JSON 的Java库, Nutz 的 Json 解析器就非常好:

Java转换成Json:
Map<String,Object> map = new HashMap<String, Object>();
map.put("name", "Peter");
map.put("age", 21);
map.put("friends", null);
String result = Json.toJson(map);

这个时候会输出成:
{
  age :21,
  name :"Peter"
}

会自动忽略掉值为空的字段.

Json转换成Java:
String json = "{age :21,name :\"Peter\"}";
map = Json.fromJson(HashMap.class, Lang.inr(json));


可以支持行注释,块注释, Json.fromJson(Class<T> type, Reader) 可以直接生成一个 Java 对象
详细的可以参见它的一个简单的手册:

http://code.google.com/p/nutz/downloads/detail?name=Nutz_Json_Book.pdf

6 楼 jindw 2008-12-29  
强烈建议别用JSON.org那个包。

罗嗦的要死,完全与JSON简洁的风格背道而驰。

http://www.iteye.com/topic/260936
5 楼 hanjs 2008-12-28  
看了JSON的处理,对应存在特殊字符比如""的,怎么处理的?
4 楼 yywu 2008-12-18  
2008shucheng 写道

我使用的时候适合JQuery一起使用的
JSON&JQuery简单易学,中小项目很适合用的。

你是在同一个页面中引入 json.js 和 jquery.js  吗,
还是用jquery.js 的json  方面的方法或插件 ?
我之前用过jquery.js ,在同一个页面中引入 json.js 和 jquery.js ,,发现报错 :递归太多 。。
把我郁闷了,,你是如何解决的 ?

3 楼 2008shucheng 2008-12-18  
JSON真的有这麽差吗?
我使用的时候适合JQuery一起使用的
JSON&JQuery简单易学,中小项目很适合用的。
2 楼 2008shucheng 2008-12-16  
xuyao 写道
效率比较差,在压力比较大的系统,生成json还不如用velocity模板

任何技术都有优缺点
对于不同的项目当然要用不同的技术来适应项目的需求
但对于一些中小型的项目还是可以选择JSON的
1 楼 xuyao 2008-12-16  
效率比较差,在压力比较大的系统,生成json还不如用velocity模板

相关推荐

    JSON Schema 生成库——json-schema-inferrer(java版).rar

    `json-schema-inferrer`是针对Java平台的一个工具库,它的主要功能是从JSON实例数据生成对应的JSON Schema,方便开发者快速构建符合规范的数据模型。 `json-schema-inferrer`库的使用可以分为以下几个关键知识点: ...

    使用json-lib实现json与Java对象的互转

    要使用 `json-lib` 实现 JSON 与 Java 对象的互转,首先需要在项目中引入该库。如果你使用的是 Maven,可以在 `pom.xml` 文件中添加如下依赖: ```xml &lt;groupId&gt;net.sf.json-lib&lt;/groupId&gt; &lt;artifactId&gt;json-lib...

    JSON Schema 校验库——json-schema-validator(java版本).rar

    在给定的压缩包中,`JSON Schema 校验库——json-schema-validator(java版本).pdf`可能是该库的使用指南或API文档,可以帮助开发者深入理解如何在Java项目中有效利用`json-schema-validator`进行JSON数据验证。...

    json-rpc-for-java

    也就是说不需要额外 的JavaScript编程,就可以通过javascript调用被注册的java对象并返回java对象,如果被返回的对象还有方法,这个在javascript中返回的java对象的变量,还可以继续调用它的方法.....这就是这个轻量...

    json-lib-2.4-jdk15.jar

    3. **JSON到Java对象的反序列化**:反之,它也提供了将JSON字符串转化为Java对象的功能,例如`JSONObject.toBean()`和`JSONArray.toList()`方法,能够将JSON数据映射到Java对象或列表。 4. **XML和JSON之间的转换**...

    json-lib-2.4-jdk15.jar下载

    1. 简单易用:json-lib的API简单易于使用,一般只需要一行或两行代码就可以完成Java对象和JSON的相互转换。 2. 支持对象图:可以将复杂的对象层次结构与JSON相互转换,支持List、Map、数组等类型。 3. 支持注解:支持@...

    json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar

    在Java世界里,`json-lib-2.1.jar` 是一个用于处理JSON的库,它提供了一系列的方法来将Java对象转换为JSON格式,以及将JSON字符串反序列化回Java对象。这个库支持多种Java类型,包括基本类型、集合、Map、自定义Java...

    json-smart-2.4.7-API文档-中文版.zip

    赠送jar包:json-smart-2.4.7.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    json-smart-2.3-API文档-中文版.zip

    赠送jar包:json-smart-2.3.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    JSON-RPC-Java实例

    JSON-RPC-Java可运行在Servlet容器中如Tomcat也可以运行在JBoss与其它J2EE应用服务器中因此可以在一个基于JavaScript与DHTML的Web应用程序中利用它来直接调用普通Java方法与EJB方法。我们可以很方便的使用JSON-RPC-...

    json-lib-2.2.3-jdk15.jar

    2. 创建JSON对象:使用JSON-lib提供的方法将Java对象转化为JSON对象,例如使用`net.sf.json.JSONObject`或`net.sf.json.JSONArray`。 3. 序列化和反序列化:通过`fromObject()`和`toObject()`方法将Java对象序列...

    json-lib-2.4和相应的依赖包

    4. **生成JSON**:使用`toString()`或`toJSONString()`方法将Java对象转换为JSON字符串,如`jsonObject.toString()`。 5. **处理复杂类型**:对于复杂的Java对象,如自定义类,可以使用`JSONSerializer`进行序列化...

    struts2-json-plugin-2.3.24-API文档-中文版.zip

    赠送jar包:struts2-json-plugin-2.3.24.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    json-path-2.6.0-API文档-中文版.zip

    赠送jar包:json-path-2.6.0.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    json-rpc-java-1.0.zip

    本压缩包“json-rpc-java-1.0.zip”包含了JSON-RPC在Java平台上的实现及相关使用示例。 首先,JSON-RPC的基本原理是,客户端通过HTTP请求将一个JSON格式的请求体发送到服务器,请求体包含了要调用的方法名和参数。...

    JSON-RPC for Java使用说明

    在Java环境中,JSON-RPC允许应用程序通过网络调用其他服务器上的方法,仿佛它们是本地对象一样。这种协议常用于构建分布式系统和服务之间的通信。 在Java中实现JSON-RPC,你需要了解以下关键概念: 1. **JSON**: ...

    json-lib-2.2.2-jdk15.jar

    3. **自定义序列化**:通过实现JSONAware接口或使用JSONSerializer的transform方法,开发者可以定制JSON序列化过程,比如忽略某些属性或者自定义特定字段的格式。 4. **性能优化**:虽然json-lib是一个强大的库,但...

    json-smart-2.4.7-API文档-中英对照版.zip

    使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    json-lib-2.4-jdk15和全部依赖jar包

    1. **JSON转换**:`json-lib`提供了将Java对象如Map、List、自定义类等转换为JSON字符串的方法,同时也支持将JSON字符串解析为相应的Java对象。这在处理前后端交互或者存储和传输数据时非常有用。 2. **XML与JSON互...

    json-smart-2.3-API文档-中英对照版.zip

    使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

Global site tag (gtag.js) - Google Analytics