`
gstarwd
  • 浏览: 1525471 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用JSON的方法

    博客分类:
  • 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);

 

声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
发表时间:2008-12-16
效率比较差,在压力比较大的系统,生成json还不如用velocity模板
0
发表时间:2008-12-16
xuyao 写道
效率比较差,在压力比较大的系统,生成json还不如用velocity模板

任何技术都有优缺点
对于不同的项目当然要用不同的技术来适应项目的需求
但对于一些中小型的项目还是可以选择JSON的
0
发表时间:2008-12-18
JSON真的有这麽差吗?
我使用的时候适合JQuery一起使用的
JSON&JQuery简单易学,中小项目很适合用的。
0
发表时间:2008-12-18
2008shucheng 写道

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

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

0
发表时间:2008-12-28
看了JSON的处理,对应存在特殊字符比如""的,怎么处理的?
0
发表时间:2008-12-29
强烈建议别用JSON.org那个包。

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

http://www.iteye.com/topic/260936
0
发表时间:2009-04-18
hanjs 写道
看了JSON的处理,对应存在特殊字符比如""的,怎么处理的?

用 \ 转义

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

Java转换成Json:
Java代码 <embed type="application/x-shockwave-flash" width="14" height="15" src="http://www.iteye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=Map%3CString%2CObject%3E%20map%20%3D%20new%20HashMap%3CString%2C%20Object%3E()%3B%0Amap.put(%22name%22%2C%20%22Peter%22)%3B%0Amap.put(%22age%22%2C%2021)%3B%0Amap.put(%22friends%22%2C%20null)%3B%0AString%20result%20%3D%20Json.toJson(map)%3B%0A" quality="high" allowscriptaccess="always" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
  1. Map<String,Object> map =  new  HashMap<String, Object>();  
  2. map.put("name" "Peter" );  
  3. map.put("age" 21 );  
  4. map.put("friends" null );  
  5. String result = Json.toJson(map);  
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);

这个时候会输出成:
Json代码 <embed type="application/x-shockwave-flash" width="14" height="15" src="http://www.iteye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=%7B%0A%20%20age%20%3A21%2C%0A%20%20name%20%3A%22Peter%22%0A%7D%0A" quality="high" allowscriptaccess="always" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
  1. {  
  2.   age :21 ,  
  3.   name :"Peter"   
  4. }  
{
  age :21,
  name :"Peter"
}

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

Json转换成Java:
Java代码 <embed type="application/x-shockwave-flash" width="14" height="15" src="http://www.iteye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=String%20json%20%3D%20%22%7Bage%20%3A21%2Cname%20%3A%5C%22Peter%5C%22%7D%22%3B%0Amap%20%3D%20Json.fromJson(HashMap.class%2C%20Lang.inr(json))%3B%0A" quality="high" allowscriptaccess="always" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
  1. String json =  "{age :21,name :\"Peter\"}" ;  
  2. map = Json.fromJson(HashMap.class , Lang.inr(json));  
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

0
发表时间:2009-04-18
2008shucheng 写道
JSON真的有这麽差吗?
我使用的时候适合JQuery一起使用的
JSON&JQuery简单易学,中小项目很适合用的。




搞笑,Google的数据传递都是用JSON的
0
发表时间:2009-11-02
依我之见json的处理性能完全超越xml,无论是java还是browser都比xml要快得多,而且表达的内容比xml还要丰富,我现在除了配置文件用xml之外,其他都改用json做中间数据传送了。


你这讲得也太基础了,怎么配置jsonconfig一点都么提。。。
0
发表时间:2009-11-19
2008shucheng 写道
xuyao 写道
效率比较差,在压力比较大的系统,生成json还不如用velocity模板

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

因为不是online serialize。所以内存压力大。
是你程序磋,不关json的事情。
0
发表时间:2009-11-22
对于jsonplugin传递struts2 action中的List属性,在JavaScript中怎么解析,反馈回的数据是数组
分享到:
评论

相关推荐

    js和java使用json方法解析版.pdf

    JS 和 JAVA 使用 JSON 方法解析版 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JS 和 JAVA 都支持使用 JSON 方法来解析和生成 JSON 数据。在本文...

    JS和JAVA使用JSON方法解析汇报.docx

    本文档主要探讨JS和JAVA如何使用JSON方法进行数据解析。 ### JS部分 #### JSON字符串转换为JSON对象 在JavaScript中,JSON对象通常以字符串形式传递。为了能够操作这些数据,我们需要将其转换为JSON对象。有三种...

    JS和JAVA使用JSON方法解析.doc

    本文将详细介绍JS和Java如何使用JSON方法进行解析。 ### JS部分 在JS中,JSON对象和JSON字符串之间的转换是非常常见的操作。以下是如何进行转换: 1. **JSON字符串转JSON对象**: - 使用`eval()`函数:`var obj ...

    JS和JAVA使用JSON方法解析Word版.pdf

    在JavaScript和Java中,JSON的使用通常涉及将JSON字符串转换为JSON对象,以及将JSON对象转换回JSON字符串。 在JavaScript中,我们有多种方式来解析JSON字符串: 1. **使用 `eval()` 函数**: JavaScript的`eval()...

    JS和JAVA使用JSON方法解析Word版.docx

    - `parseJSON()`:非标准方法,源自早期的json.js库,现在已经不推荐使用。 - `JSON.parse()`:标准方法,从ECMAScript 5开始引入,用于将JSON字符串转换为JavaScript对象。这是目前最安全且推荐的方法。 2. **...

    MFC使用json11解析JSON

    或者,如果你需要将C++对象转换回JSON字符串,可以使用`Json::dump`方法: ```cpp json11::Json userObject; // 设置userObject的属性... std::string jsonString = userObject.dump(); ``` 在MFC应用程序中,你...

    JSON库使用DEMO

    Python的`json.loads()`可以将JSON字符串转为Python对象,而Java的`JSONObject`类提供了`get()`方法获取键对应的值,或者`fromJson()`方法将JSON字符串转化为指定类型的对象。 5. **操作JSON对象**: JSON库通常...

    JSP中如何使用JSON

    在前端,可以通过JavaScript的`fetch`或`XMLHttpRequest`等方法获取服务器返回的JSON数据,并使用`JSON.parse()`将其转换回JavaScript对象: ```javascript fetch('/yourjspurl') .then(response =&gt; response.text...

    json常用方法,json解析

    ### JSON 常用方法与解析 ...此外,还介绍了如何在 AJAX 请求中使用 JSON 数据,以及如何通过自定义 `toJSON` 方法来控制对象的序列化方式。这些知识点对于理解和应用 JSON 在实际开发中至关重要。

    JQuery 获取json数据$.getJSON方法的实例代码

    总结来说,本段内容详细介绍了JQuery中$.getJSON方法的使用,展示了通过$.getJSON方法在前端获取JSON数据,并在回调函数中处理这些数据的实例。同时,也演示了服务端如何返回JSON格式的数据。在理解这些知识点时,...

    MFC/VC控制台下使用json库

    - 要将C++对象转换为JSON并写入文件,可以使用库提供的序列化方法。对于nlohmann/json,可以使用`json_object.dump()`将JSON对象转换为字符串,然后写入文件。 - MFC中的文件操作通常涉及`CFile`类,使用它的`Open...

    ASP解析JSON方法

    另一种方法是使用XMLHTTP对象发起异步请求,从服务器获取JSON数据,然后在客户端使用JavaScript解析。这种方式结合了客户端和服务器端的优势,但同样需要注意数据安全问题。 6. ASP.NET ISAPI Filter 如果你能够...

    ASP中JSON类以及使用方法详解

    本文将详细介绍如何在ASP中使用JSON类以及相关的使用方法。 首先,我们来看`json.asp`文件,这通常是一个包含JSON处理功能的自定义类。这个类库可能提供了如`Encode`和`Decode`等方法,用来将ASP变量转换为JSON字符...

    使用json封装数据 html源代码

    在HTML源代码中使用JSON数据,通常需要使用JavaScript的`JSON.parse()`方法将JSON字符串转换为JavaScript对象,然后可以访问和操作这些数据。例如: ```javascript let jsonString = '{"name":"张三","age":30}'; ...

    json2 使用方法

    引入后,你就可以在JavaScript代码中自由地使用`JSON.parse()`和`JSON.stringify()`方法了。注意,由于`json2.js`仅在浏览器不支持JSON时才提供这些方法,所以在现代浏览器中,它们将被忽略,不会造成性能影响。 在...

    使用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...

    Java中使用Json的net.sf.json包

    例如,可以使用`JSONObject.toString()`方法将JSON对象转换为字符串: ```java String jsonString = jsonObject.toString(); ``` 反过来,使用`JSONObject.fromObject()`或`JSONArray.fromObject()`可以将JSON字符...

Global site tag (gtag.js) - Google Analytics