`

基于json-lib.jar包Json实例程序(转)

    博客分类:
  • Java
阅读更多
基于json-lib.jar包Json实例程序

 
创建JSONArray的常用四种方法
 
1.从头或者从零开始,创建一个JSONArray(Creating a JSONArray from scratch)
实例1: 
JSONArray jsonArray = new JSONArray().element("JSON").element("1").element("2.0").element("true"); 
assertEquals("JSON", jsonArray.getString(0)); 
assertEquals(1, jsonArray.getInt(1)); 
assertEquals(2.0d, jsonArray.getDouble(2), 0d); 
assertTrue(jsonArray.getBoolean(3)); 
   
3.使用一个Collection来创建一个JSONArray(Creating a JSONArray from a Collection)
实例1:
  
List list = new ArrayList();
 list.add( "JSON" ); 
list.add( "1" ); 
list.add( "2.0" ); 
list.add( "true" ); 
JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON( list ); assertEquals( "JSON", jsonArray.getString(0) ); 
assertEquals( 1, jsonArray.getInt(1) ); 
assertEquals( 2.0d, jsonArray.getDouble(2), 0d ); 
assertTrue( jsonArray.getBoolean(3) ); 
 
   
4.使用一个Array来创建一个JSONArray(Creating a JSONArray from an array)
实例1:
Object[] array = new Object[] { "JSON", 1, 2.0, true }; 
JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(array); assertEquals("JSON", jsonArray.getString(0));
assertEquals(1, jsonArray.getInt(1)); 
assertEquals(2.0d, jsonArray.getDouble(2), 0d); 
assertTrue(jsonArray.getBoolean(3)); 

//实例2: 
Object[] array = new Object[] { "JSON", 1, 2.0, true }; 
JSONArray jsonArray = JSONArray.fromObject(array); 
assertEquals("JSON", jsonArray.getString(0)); 
assertEquals(1, jsonArray.getInt(1)); 
assertEquals(2.0d, jsonArray.getDouble(2), 0d); 
assertTrue(jsonArray.getBoolean(3)); 
    
由此可见,无论要转换的源是哪种类型,都可以使用(JSONArray) JSONSerializer.toJSON()或JSONArray.fromObject()来转换;
 
   常用的三种扩展功能 
 
1.使用一个JSON格式化字符串来创建一个JSONFunction(JavaScript functions)  
实例:
String str = "{func: function( param ){ doSomethingWithParam(param); }}"; 
JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON(str); JSONFunction func = (JSONFunction) jsonObject.get("func"); ArrayAssertions.assertEquals(new String[] { "param" }, func.getParams()); 
assertEquals("doSomethingWithParam(param);", func.getText()); 
  
 
注:函数的写法要注意function(){},参数param是可选的!

2.排除一个JSON格式化字符串的某些属性(Exclude properties)
实例:
   
String str = "{'string':'JSON', 'integer': 1, 'double': 2.0, 'boolean': true}"; 
JsonConfig jsonConfig = new JsonConfig(); 
jsonConfig.setExcludes(new String[] { "double", "boolean" }); JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON(str, jsonConfig); 
assertEquals("JSON", jsonObject.getString("string")); 
assertEquals(1, jsonObject.getInt("integer"));
assertFalse(jsonObject.has("double")); 
assertFalse(jsonObject.has("boolean")); 
    
3.排除一个JSON格式化字符串的某些属性,使用过滤器(Exclude properties (with filters)
实例:
  
String str = "{'string':'JSON', 'integer': 1, 'double': 2.0, 'boolean': true}";
 JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setJsonPropertyFilter(new PropertyFilter() { 
   public boolean apply(Object source, String name, Object value) {
         if ("double".equals(name) || "boolean".equals(name)) 
          { return true; }
              return false; } }); 
JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON(str, jsonConfig); 
assertEquals("JSON", jsonObject.getString("string")); 
assertEquals(1, jsonObject.getInt("integer")); 
assertFalse(jsonObject.has("double")); 
assertFalse(jsonObject.has("boolean")); 
 
 

JSONObject-Java常用的四种用法
1.JSONObject to DynaBean

String json = "{name=\"json\",bool:true,int:1,double:2.2}"; JSONObject jsonObject = JSONObject.fromObject(json); //抽象的写法:DynaBean bean = (DynaBean) JSONSerializer.toJava( jsonObject ); Object bean = JSONObject.toBean(jsonObject); 
//Object bean1 = JSONSerializer.toJava(jsonObject); 
assertEquals(jsonObject.get("name"), PropertyUtils.getProperty(bean, "name"));
 assertEquals(jsonObject.get("bool"), PropertyUtils.getProperty(bean, "bool")); 
assertEquals(jsonObject.get("int"), PropertyUtils.getProperty(bean, "int")); 
assertEquals(jsonObject.get("double"), PropertyUtils.getProperty(bean, "double")); 

 

 

 2.JSONObject to JavaBean

String json = "{name:\"zhangsan\",age:25,hight:1.72,sex:true}"; JSONObject jsonObject = JSONObject.fromObject(json); 
UserBean bean = (UserBean) JSONObject.toBean(jsonObject, UserBean.class); 
System.out.println(jsonObject); 

  

 


3.JSONArray to List

String json = "[\"first\",\"second\"]"; 
JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(json);
 List output = (List) JSONSerializer.toJava(jsonArray); 

    
4.JSONArray to array

 

String json = "[\"first\",\"second\"]";
 JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(json); JsonConfig jsonConfig = new JsonConfig(); 
jsonConfig.setArrayMode(JsonConfig.MODE_OBJECT_ARRAY); 
Object[] output = (Object[]) JSONSerializer.toJava(jsonArray, jsonConfig); 
Object[] expected = new Object[] { "first", "second" }; ArrayAssertions.assertEquals(expected, output);  
 

 

理论上,这样就可以了,但时,有异常Caused by: java.lang.NoSuchMethodException: com.json.Json$UserBean.<init>()

   
2.使用一个JSON格式化字符串来创建一个JSONArray(Creating a JSONArray from a JSON formatted string)  
实例1:
  
String str = "['JSON', 1, 2.0, true]"; //注意该字符串的格式"[ , ]" JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON( str ); assertEquals( "JSON", jsonArray.getString(0) ); 
assertEquals( 1, jsonArray.getInt(1) ); 
assertEquals( 2.0d, jsonArray.getDouble(2), 0d ); 
assertTrue( jsonArray.getBoolean(3) ); 
    

 List<String> list = new ArryList<String>(); list.add("a"); list.add("b"); Map<String,List<String>> map = new HashMap<String,List<String>>(); map.put("list",list); MessageUtils.outputJSONResult(JSONObject.fromObject(map).toString(), response); public class MessageUtils { public static void outputJSONResult(String result, HttpServletResponse response) { try { response.setHeader("ContentType", "text/json"); response.setCharacterEncoding("utf-8"); PrintWriter pw = response.getWriter(); pw.write(result); pw.flush(); pw.close(); } catch (IOException e) { e.printStackTrace(); } }

分享到:
评论
1 楼 William_Sim 2011-10-13  

相关推荐

    json-lib-2.4-jdk15.jar所需全部JAR包

    json-lib-2.4-jdk15.jar所需全部JAR包.rar java jsoup解析开彩网api接口json数据实例

    json.libjar包

    这是org.json的jar包,和大家分享,我还有相关博文书写了实例,可以参考。

    jsonjar包和案例

    jsonjar包和案例

    json,xstream,ezmorph jar包

    //extjs的jsp标签库及使用实例 ...json-lib-2.2.3-jdk15.jar json-lib-2.2.3-jdk15-javadoc.jar commons-collections-3.2.jar commons-lang-2.3.jar //java将数据类型转为xml格式 xstream-1.3.1.jar

    gson,fastJson,json-lib实例

    本项目是gson,fastJson,json-lib实例,包含完整代码和jar包,亲测可用,已经用于公司项目开发中。

    struts2的rest风格插件实例

    由于 Struts 2 的 REST 插件还需要将提供 XML、JSON 格式的数据,因此还需要将 xstream-1.2.2.jar、json-lib-2.1.jar、ezmorph-1.0.3.jar 以及 Jakarta-Common 相关 JAR 包复制到 Web 应用的 WEB-INF/lib 路径下。...

    对象转换成json字符串(包括jar包)

    MyEclipse工程,里面包括五个Jar包:commons-beanutils-1.8.0.jar,commons-collections-3.2.1.jar,commons-lang-2.4.jar,commons-logging-1.1.1.jar,ezmorph-1.0.6.jar,json-lib-2.2.3-jdk15.jar

    创建JSONObject的四个常用方法

    基于json-lib.jar包 创建JSONObject的四个常用方法 基于json-lib.jar包Json实例程序

    jQuery+jsp下拉框联动获取本地数据的方法(附源码)

    下面的实例使用Json将服务器端的类或者对象转换为JSON格式,主要运用了6个jar包 commons-beanutils-1.7.0.jar commons-collections-3.2.jar commons-lang-2.3.jar commons-logging-1.0.4.jar ezmorph-1.0.3.jar json...

    gson,fastJson,json-lib测试与实例

    本项目是完整项目,内含完整代码和jar包,亲测可用,已用于公司项目中。

    Java和JSON之间的相互转换所需要所有的jar包及实例

    Java和JSON之间的相互转换所需要所有的jar包及实例

    Json字符串转Java对象和List代码实例

    主要介绍了Json字符串转Java对象和List代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    json文件读写实例

    使用json-lib对json文件进行解析,自己做的实例,主要是写入json文件,包含五个jar包都在里面。

    Xml和Json互转工具类

    本实例主要是通过json-libjar包中的工具类进行操作,简单实现了xml字符串和json字符串之间的转化,xml文件和json文件的转化。而且还兼容jsonObject和jsonArray两种格式,自己摸索,记录一下以便学习。

    java开源包10

    SpeechLion 是一个语音识别程序,主要用来处理桌面命令,基于 Sphinx-4 语音识别引擎开发。用户可以通过该软件来控制 Linux 桌面,例如打开google搜索、鼠标点击、下一窗口、打开帮助、静音等操作。 Java发送短信包...

    Json库的使用总结

    1、 如何将List变成Json字符串 2 2、 如何将一个对象变成Json字符串 2 3、 如何将一个对象的Json字符串变成该对象实例 2 4、 如何将一个List字符串,变成List实例 2 ...同进提供所使用的json-lib-2.2.1-jdk15.jar

    ajax+json+Struts2实现list传递实例讲解

    一、首先需要下载JSON依赖的jar包。它主要是依赖如下: json-lib-2.2.2-jdk15 ezmorph-1.0.4 commons-logging-1.0.4 commons-lang-2.4 commons-collections-3.2.1 commons-beanutils 二、实例。 1、身份证错误信息...

    基于storm实时热点统计的分布式并行缓存预热

    maven构建出的一些问题,直接从maven中央仓库可能下载不到jar包,自己去百度一下jar,下载下来 根据错误提示,拷贝到maven本地仓库对应的目录中去,然后手工安装一下 1、kafka consumer spout 单独的线程消费,...

    json+struts2

    stuts2+json+jquerystruts2 实例是通过用js的一个框架jquery来实现的ajax,jquery真的不错,其中的数据传输格式用的时json,用了一个json_lib的jar包,所有所需的包都在了,下载后就能运行

    django model object序列化实例

    在J2EE的开发中,这是很常用的技术,比如一个java class与xml之间的序列化与反序列化,我们可以通过 xstream来实现,如果是与json之间的转换,我们可以通过 gson.jar或者jsonlib.jar 来实现。方法很多,也是常见的...

Global site tag (gtag.js) - Google Analytics