`

创建JSONArray的常用四种方法

阅读更多
创建JSONArray的常用四种方法

1.从头或者从零开始,创建一个JSONArray(Creating a JSONArray from scratch)
实例1:


Java代码 
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:

Java代码 
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:

Java代码 
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) 
实例:

Java代码 
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)
实例:

Java代码 
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)
实例:
Java代码 
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

Java代码 
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

Java代码 
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

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


4.JSONArray to array

Java代码 
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:

Java代码 
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) );  


Java代码 
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(); } } 
分享到:
评论

相关推荐

    JSONArray常用包.rar

    1. **创建JSONArray**: - 创建一个空的`JSONArray`:`JSONArray jsonArray = new JSONArray();` - 从已有的集合或数组创建`JSONArray`:可以通过`JSONArray`的构造函数传入List、Array等。 2. **添加元素**: -...

    JSONObject和JSONArray对象的创建方法

    在Java编程语言中,JSON(JavaScript Object Notation)是一种轻量级的数据...理解其创建方法和常用API,能有效提升JSON数据处理的效率。在实际项目中,结合使用合适的JSON库,可以进一步优化代码的可读性和维护性。

    JSONObject和JSONArray使用手册.docx

    `JSONObject`和`JSONArray`是处理JSON数据的常用工具,它们分别对应JSON中的对象和数组。在Java集合框架中,`ArrayList`和泛型`List&lt;T&gt;`是常见的列表实现,泛型提供了更好的类型安全性和编程体验。在现代编程中,...

    解析json的工具类,包括JSONObject、JSONArray、JSONException、JSONString等

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。在Java中,有许多库可以处理JSON,其中最常用的是org.json库。这个库提供了几个核心类,如JSONObject、...

    JSONObject与JSONArray的使用

    - **创建JSONArray对象**:通过调用JSONArray的构造函数或使用静态工厂方法来创建JSONArray实例。例如,`new JSONArray()` 或者 `JSONArray.fromObject()`。 - **添加元素**:使用`add()`方法向JSONArray中添加元素...

    两种方式解析本地JOSNArray

    // 创建JSONArray对象 JSONArray jsonArray = new JSONArray(jsonString); for (int i = 0; i &lt; jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); String name = jsonObject...

    Android Studio解析JSON数组

    在这个方法里,你可以使用`LayoutInflater`来创建视图,并填充`Item`对象的数据。 ```java public class CustomAdapter extends BaseAdapter { private Context context; private List&lt;Item&gt; items; // 构造...

    Json.zip_JSON_java json

    // 从字符串创建JSONArray ``` JSON的灵活性和简洁性使其成为数据交换的理想选择。在实际开发中,我们通常会用到更复杂的JSON结构,包括嵌套的JSONObject和JSONArray,以及处理null值等。在处理这些情况时,理解...

    基于json-lib.jar包 JSONObject-Java常用的四种用法

    本文将深入探讨基于`json-lib.jar`包中的`JSONObject`类的四种常用用法。 1. **创建JSONObject** 创建`JSONObject`最常见的方式是从一个Java对象映射而来。`json-lib.jar`提供了`JsonBeanUtil`工具类,可以将Java...

    java创建 解析json lib包

    Gson通过注解提供了一种简单的方法来自定义序列化和反序列化。 3. **org.json**: 这是一个轻量级的库,提供了简单的API来创建和解析JSON。例如,`JSONObject`和`JSONArray`类用于构建JSON结构,`JSONStringer`和`...

    3种json解析方法包括服务器端和客户端

    在这个主题中,我们将深入探讨三种在Android开发中常用的JSON解析方法:原生的`json`库,Google的`Gson`库以及Fastjson。这些方法适用于服务器端和客户端的开发,对于初学者来说是理解和实践JSON解析的重要步骤。 1...

    net.sf.json.JSONObject对象使用指南

    可以通过`JSONObject.fromObject(String jsonStr)`或`JSONArray.fromObject(String jsonStr)`方法实现。 - **与Spring框架集成**:在Spring框架中,可以利用`@RequestBody`和`@ResponseBody`注解方便地处理JSON数据...

    org.json 包

    `org.json`包是Android SDK中一个常用的库,它提供了处理JSON对象的方法,使得在Java中操作JSON变得更加简单。本文将深入探讨`org.json`包在Android中的使用方法和关键知识点。 ### JSON对象与JSON数组 `org.json`...

    android之JSON数据的构建

    在Android开发中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,因其轻量级、易读易写的特点,被广泛应用于服务器与客户端之间的数据通信。本教程将深入讲解如何在Android环境中构建JSON数据。 ...

    java对象与json对象的转换.pdf

    - 使用`JSONArray.fromObject`方法可以将boolean数组转换为JSONArray对象,例如将`{true, false, true}`数组转换为`["true", "false", "true"]`的JSON数组。 - 类似地,可以将Java中的`List`集合转换为JSONArray,...

    android操作json

    在Android开发中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,因其轻量级、易读易写的特点,常用于客户端与服务器之间的数据传输。本篇将详细讲解如何在Android中进行JSON的操作,包括读取JSON、...

    string转json

    这个库是Java中处理JSON的一种常用工具,提供了诸如解析JSON、创建JSON对象和数组、以及序列化和反序列化等功能。在使用前,需要先将其添加到项目依赖中。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ...

    java解析Json数据常用的两个解析库,实例分析.docx

    然后,你可以创建一个`Gson`对象,通过它的`toJson()`和`fromJson()`方法来进行JSON与Java对象之间的转换。 - 示例代码: ```java import com.google.gson.Gson; class GsonDataAnalysis { // 类的定义... }...

    json使用案例

    JSONObject是JSON数据结构的一种表示,它可以包含零个或多个键值对,每个键都是一个字符串,而对应的值可以是各种JSON数据类型:字符串、数字、布尔值、数组(JSONArray)、其他JSONObject或者null。创建JSONObject...

    json定义及jquery操作json的方法_1.docx

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,设计简单且易于人阅读和编写,同时也易于机器解析和生成。JSON被广泛用于Web服务与客户端JavaScript之间的数据传输,...

Global site tag (gtag.js) - Google Analytics