当前位置:文档之家› java中对json进行解析(使用net.sf.json)

java中对json进行解析(使用net.sf.json)

java中对json进行解析(使用net.sf.json)
java中对json进行解析(使用net.sf.json)

net.sf.json依赖的包很多。

有commons-collections,commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph-1.0.5.jar,morph-1.1.1.jar

1./**

2.* 从一个JSON 对象字符格式中得到一个java对象,形如:

3.* {"id" : idValue, "name" : nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...}}

4.* @param object

5.* @param clazz

6.* @return

7.*/

8. public static Object getDTO(String jsonString, Class clazz){

9. JSONObject jsonObject = null;

10. try{

11. setDataFormat2JAVA();

12. jsonObject = JSONObject.fromObject(jsonString);

13. }catch(Exception e){

14. e.printStackTrace();

15. }

16. return JSONObject.toBean(jsonObject, clazz);

17. }

18.

19./**

20.* 从一个JSON 对象字符格式中得到一个java对象,其中beansList是一类的集合,形如:

21.* {"id" : idValue, "name" : nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...},

22.* beansList:[{}, {}, ...]}

23.* @param jsonString

24.* @param clazz

25.* @param map 集合属性的类型(key : 集合属性名, value : 集合属性类型clas s) eg: ("beansList" : Bean.class)

26.* @return

27.*/

28. public static Object getDTO(String jsonString, Class clazz, Map map){

29. JSONObject jsonObject = null;

30. try{

31. setDataFormat2JAVA();

32. jsonObject = JSONObject.fromObject(jsonString);

33. }catch(Exception e){

34. e.printStackTrace();

35. }

36. return JSONObject.toBean(jsonObject, clazz, map);

37. }

38.

39./**

40.* 从一个JSON数组得到一个java对象数组,形如:

41.* [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...]

42.* @param object

43.* @param clazz

44.* @return

45.*/

46. public static Object[] getDTOArray(String jsonString, Class clazz){

47. setDataFormat2JAVA();

48. JSONArray array = JSONArray.fromObject(jsonString);

49. Object[] obj = new Object[array.size()];

50. for(int i = 0; i < array.size(); i++){

51. JSONObject jsonObject = array.getJSONObject(i);

52. obj[i] = JSONObject.toBean(jsonObject, clazz);

53. }

54. return obj;

55. }

56.

57./**

58.* 从一个JSON数组得到一个java对象数组,形如:

59.* [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...]

60.* @param object

61.* @param clazz

62.* @param map

63.* @return

64.*/

65. public static Object[] getDTOArray(String jsonString, Class clazz, Map map){

66. setDataFormat2JAVA();

67. JSONArray array = JSONArray.fromObject(jsonString);

68. Object[] obj = new Object[array.size()];

69. for(int i = 0; i < array.size(); i++){

70. JSONObject jsonObject = array.getJSONObject(i);

71. obj[i] = JSONObject.toBean(jsonObject, clazz, map);

72. }

73. return obj;

74. }

75./**

76.* 从一个JSON数组得到一个java对象集合

77.* @param object

78.* @param clazz

79.* @return

80.*/

81. public static List getDTOList(String jsonString, Class clazz){

82. setDataFormat2JAVA();

83. JSONArray array = JSONArray.fromObject(jsonString);

84. List list = new ArrayList();

85. for(Iterator iter = array.iterator(); iter.hasNext();){

86. JSONObject jsonObject = (JSONObject)iter.next();

87. list.add(JSONObject.toBean(jsonObject, clazz));

88. }

89. return list;

90. }

91.

92./**

93.* 从一个JSON数组得到一个java对象集合,其中对象中包含有集合属性

94.* @param object

95.* @param clazz

96.* @param map 集合属性的类型

97.* @return

98.*/

99. public static List getDTOList(String jsonString, Class clazz, Map map){ 100. setDataFormat2JAVA();

101. JSONArray array = JSONArray.fromObject(jsonString);

102. List list = new ArrayList();

103. for(Iterator iter = array.iterator(); iter.hasNext();){

104. JSONObject jsonObject = (JSONObject)iter.next();

105. list.add(JSONObject.toBean(jsonObject, clazz, map));

106. }

107. return list;

108. }

109.

110./**

111.* 从json HASH表达式中获取一个map,该map支持嵌套功能

112.* 形如:{"id" : "johncon", "name" : "小强"}

113.* 注意commons-collections版本,必须包含https://www.doczj.com/doc/9212227943.html,mons.collections.map. MultiKeyMap

114.* @param object

115.* @return

116.*/

117. public static Map getMapFromJson(String jsonString) {

118. setDataFormat2JAVA();

119. JSONObject jsonObject = JSONObject.fromObject(jsonString);

120. Map map = new HashMap();

121. for(Iterator iter = jsonObject.keys(); iter.hasNext();){

122. String key = (String)iter.next();

123. map.put(key, jsonObject.get(key));

124. }

125. return map;

126. }

127.

128./**

129.* 从json数组中得到相应java数组

130.* json形如:["123", "456"]

131.* @param jsonString

132.* @return

133.*/

134. public static Object[] getObjectArrayFromJson(String jsonString) {

135. JSONArray jsonArray = JSONArray.fromObject(jsonString);

136. return jsonArray.toArray();

137. }

138.

139./**

140.* 把数据对象转换成json字符串

141.* DTO对象形如:{"id" : idValue, "name" : nameValue, ...}

142.* 数组对象形如:[{}, {}, {}, ...]

143.* map对象形如:{key1 : {"id" : idValue, "name" : nameValue, ...}, key2 : {}, ...}

144.* @param object

145.* @return

146.*/

147. public static String getJSONString(Object object) throws Exception{

148. String jsonString = null;

149.//日期值处理器

150. JsonConfig jsonConfig = new JsonConfig();

151. jsonConfig.registerJsonValueProcessor(java.util.Date.class, new JsonDateValue Processor());

152. if(object != null){

153. if(object instanceof Collection || object instanceof Object[]){

154. jsonString = JSONArray.fromObject(object, jsonConfig).toString(); 155. }else{

156. jsonString = JSONObject.fromObject(object, jsonConfig).toString(); 157. }

158. }

159. return jsonString == null ? "{}" : jsonString; 160. }

后台转换JSON数据类型,前台解析JSON数据等等例子总结

后台转换JSON数据类型,前台解析JSON数据等等例子总结 JSON对象: JSONObject obj = new JSONObject(); obj.put("result", 0); obj.put("message", message); return obj.toJSONString(); 前台解析: Success:function(data){ var result = data.result; var message = data.message; } json对象中有json对象的写法: Objstr为一个JSONObject obj的String转换 private String getsuccess(String objstr,int number){ JSONObject obj = new JSONObject(); obj.put("result", 1); obj.put("obj", objstr); obj.put("number", number); return obj.toJSONString(); }

前台解析: Picjson为success返回的data var result = picjson.result; if (result==1) { var objdata = picjson.obj; var data = eval('(' + objdata + ')'); var num = picjson.number; picurl = null; showpiclist(data, num); } else{ alert(picjson.message); picurl = null; } list转成json对象 需要的包: https://www.doczj.com/doc/9212227943.html,mons-lang.jar https://www.doczj.com/doc/9212227943.html,mons-beanutils.jar https://www.doczj.com/doc/9212227943.html,mons-collections.jar https://www.doczj.com/doc/9212227943.html,mons-logging.jar

jQuery+AJAX+JSON

jQuery 1. 什么是jQuery?? jQuery是一个优秀的JavaScript框架,一个轻量级的JavaScript类库。 jQuery的核心理念是Write less,Do more。 使用jQuery可以兼容各种浏览器,方便的处理HTML、Events、动画效果等,并且方便的为网站提供AJAX交互。 2.jQuery的特点: 利用选择器来查找要操作的节点,然后将这些节点封装成一个jQuery对象,通过调用jQuery对象的方法或者属性来实现对底层被封装的节点的操作。 好处:a、兼容性更好;b、代码更简洁 3.编程步骤: step1、使用选择器查找节点 step2、调用jQuery的属性和方法 4.jQuery对象与DOM对象之间的转换 1. 什么是jQuery对象?? jQuery对象是jQuery对底层对象的一个封装,只有创建了这个对象,才能使用类库中提供的方法。 2. DOM对象 ----> jQuery对象 DOM对象向jQuery对象的转变很容易,外面追加$和圆括号即可。 function f( ){ var obj = document.getElementById(‘d1’); //DOM -> jQuery对象

var $obj = $(obj); $obj.html(‘hello jQuery’); } 3. jQuery对象 ----> DOM对象 jQuery对象向DOM对象转化,通过调用get方法加参数值0即可$obj.get(0)。 function f( ){ var $obj = $(‘#d1’); //jQuery对象 -> DOM var obj = $(obj).get (0); obj.innerHTML = ‘hello jQuery’; } 5. jQuery选择器 1. 什么是jQuery选择器?? jQuery选择器是一种类似CSS选择器的特殊说明符号,能够帮助jQuery 定位到要操作的元素上,使用了选择器可以帮助HTML实现内容与行为的分离。只需要在元素上加上Id属性。 2. 选择器的种类 a、基本选择器 #id根据指定的ID匹配一个元素 .class根据指定的类匹配一个元素 element根据的指定的元素名匹配所有的元素

Json数据格式的使用方法入门教程

JSON 数据格式解析 和 XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的Object 对象。 String,Number 和 Boolean 用 JSON 表示非常简单。例如,用 JSON 表示一个简单的 String “ abc ”,其格式为: "abc" 除了字符 ",\,/ 和一些控制符(\b,\f,\n,\r,\t)需要编码外,其他 Unicode 字符可以直接输出。下图是一个 String 的完整表示结构: 图 1. String 的完整表示结构 一个 Number 可以根据整型或浮点数表示如下:

图 2. Number 的表示结构 这与绝大多数编程语言的表示方法一致,例如: 12345(整数) -3.9e10(浮点数) Boolean 类型表示为 true 或 false 。此外,JavaScript 中的 null 被表示为 null,注意,true、false 和 null 都没有双引号,否则将被视为一个String 。 JSON 还可以表示一个数组对象,使用 [] 包含所有元素,每个元素用逗号分隔,元素可以是任意的 Value,例如,以下数组包含了一个 String,Number,Boolean 和一个 null: Object 对象在 JSON 中是用 {} 包含一系列无序的 Key-Value 键值对表示的,实际上此处的 Object 相当于 Java 中的 Map,而不是Java 的 Class 。注意 Key 只能用 String 表示。 例如,一个 Address 对象包含如下 Key-Value:

Jquery Ajax 异步处理Json数据

啥叫异步,啥叫Ajax.咱不谈啥XMLHTTPRequest.通俗讲异步就是前台页面javascript能调用后台方法.这样就达到了无刷新.所谓的Ajax.这里我们讲二种方法 方法一:(微软有自带Ajax框架) 在https://www.doczj.com/doc/9212227943.html,里微软有自己的Ajax框架.就是在页面后台.cs文件里引入 using System.Web.Services 空间然后定义静态方法(方法前加上 [WebMethod]) [WebMethod] public static string ABC(string ABC) { return ABC; } 好了,现在我们谈谈前台Js怎么处理后台返回的数据吧,可利用Jquery处理返回的纯html,json,Xml等数据.这里我们演示返回返回的数据有string、集合(List<>)、类. 但都返回Json格式(Json轻量级比XML处理起来简单).看看前台是怎么解析这些数据的. 代码如下: 前台页面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> 无标题页