`

基于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.jar

    总的来说,`json-lib.jar`是一个强大的JSON处理工具,为Java开发者提供了一种简单的方式来处理JSON数据,广泛应用于各种需要数据交换的Java应用程序中。通过理解和熟练使用这个库,开发者可以提高其项目的数据处理...

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

    为了能够正确运行`json-lib-2.4-jdk15.jar`并结合`jsoup`解析开彩网API接口的JSON数据,开发者需要确保拥有所有必需的依赖JAR包。这些依赖可能包括但不限于以下组件: 1. **json-lib**:主要的JSON处理库,包含JSON...

    json-lib-2.4-jdk15及其依赖jar包

    开发者需要在项目中引入JSON-Lib的jar包,包括主库和其依赖,确保所有必要的类和方法都能被正确加载。 总结起来,JSON-Lib是一个强大的工具,它为Java开发者提供了一种高效且直观的方式来处理JSON数据。无论是在...

    log4j-api-2.17.1.jar和log4j-core-2.17.1.jar

    《深入理解log4j-api-2.17.1.jar与log4j-core-2.17.1.jar》 在Java开发中,日志管理是不可或缺的一部分,它帮助我们跟踪程序运行状态、定位错误和调试问题。Log4j作为一款广泛使用的日志框架,历经多次迭代,现在...

    json-lib-2.2.3-jdk15.jar

    `json-lib-2.2.3-jdk15.jar` 是一个针对Java开发的JSON处理库,它允许Java程序员方便地将Java对象转换为JSON格式的字符串,同时也能将JSON文本解析回相应的Java对象。 这个特定版本的json-lib是2.2.3版,兼容Java ...

    json-lib依赖jar包.rar

    这个"json-lib依赖jar包.rar"包含了实现这一功能所需的JAR文件。 在Java开发中,`json-lib`是一个重要的工具,特别是在处理JSON数据时。以下是一些关键知识点: 1. **JSON对象与Java对象的映射**:`json-lib`允许...

    json.libjar包

    在Java开发中,`json.libjar`包通常指的是`json-lib`库,这是一个用于处理JSON的Java库,能够帮助开发者在Java程序中进行JSON数据的序列化和反序列化。 `json-lib`库是由Eclipse开源社区开发的,它提供了多种Java...

    使用json-lib将java对象转换成json字符串

    标题中的“使用json-lib将java对象转换成json字符串”指的是在Java编程中,利用json-lib这个库来将Java对象转化为JSON格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端...

    最新json-lib及其依赖库包.rar

    通过json-lib,我们可以将JavaBean对象转换为JSON字符串,也可以将JSON字符串反序列化为JavaBean实例,这对于构建基于JSON的数据服务非常有用。 3. **Map与JSON**:Map是Java中的一种数据结构,用于存储键值对。...

    json-lib-2.4-jdk15源码和jar包

    - **JSON与XML的互转**:`json-lib`还支持JSON和XML之间的转换,这对于那些需要在两种格式间切换的应用场景非常实用。 - **类型适配器**:库提供了一种机制,允许自定义特定类型(如自定义类)到JSON的转换,通过...

    json-lib-2.4所需全部JAR包及方法演示

    标题"json-lib-2.4所需全部JAR包及方法演示"表明,这个压缩包包含了json-lib库的2.4版本所有必需的JAR文件,以及如何使用这些库进行JSON操作的示例代码。这意味着开发者可以下载这些JAR文件,将其添加到项目构建路径...

    json-lib和json-rpc jar包

    在本例中,json-lib-2.1-jdk15.jar和json-rpc-1.0.jar已经经过验证,可以一起使用,这意味着开发者可以安心地在项目中集成这两个库,不必担心版本不兼容的问题。 总的来说,json-lib和json-rpc是Java开发中处理JSON...

    json-lib-2.4-jdk及其相关资源与教程

    本资源包围绕“json-lib-2.4-jdk”展开,包含了该版本的JSON-Lib工具包以及相关的jar包,旨在提供全面的支持和教程资源。 JSON-Lib 2.4是该库的一个稳定版本,支持多种Java环境,包括JDK。在实际开发中,它可以帮助...

    Jmeter需要用的json.jar包

    2. **导入jar包**:下载完成后,将`json.jar`复制到JMeter的安装目录下的`lib`子目录。这样,JMeter在启动时会自动加载这个库。 3. **配置Beanshell**:在JMeter的测试计划中,添加一个Beanshell组件,如Beanshell ...

    jsonjar包和案例

    总的来说,JSONJar包为Java开发者提供了一个简单易用的工具来处理JSON数据,使得在应用程序中传递和存储数据变得更加便捷。在实际项目中,你可能会结合其他HTTP客户端库(如Apache HttpClient或OkHttp)来发送和接收...

    gson-2.7.jar包

    这个库使得在Java应用程序中处理JSON数据变得极其简单。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也方便机器解析和生成。在Java开发中,Gson库扮演着重要的角色,特别...

    HttpClient所需jar包(全) httpClient.4.13jar

    5. `json-lib-2.x.x.jar`: 如果包含,这就是用于处理JSON数据的库。 6. 可能还有其他依赖库,如`commons-logging-*.jar`用于日志记录,`commons-codec-*.jar`用于编码解码等。 使用这些jar包,开发者可以在他们的...

    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

    JSON-lib框架,转换JSON、XML不再困难

    文件"json-lib-2.4"可能是一个包含JSON-lib 2.4版本的JAR文件,这个版本可能包含了该库的所有类和资源,供开发者在项目中引入作为依赖。为了使用这个库,开发者需要将其添加到项目的类路径中,然后就可以利用JSON-...

Global site tag (gtag.js) - Google Analytics