创建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(); } }
分享到:
相关推荐
1. **创建JSONArray**: - 创建一个空的`JSONArray`:`JSONArray jsonArray = new JSONArray();` - 从已有的集合或数组创建`JSONArray`:可以通过`JSONArray`的构造函数传入List、Array等。 2. **添加元素**: -...
在Java编程语言中,JSON(JavaScript Object Notation)是一种轻量级的数据...理解其创建方法和常用API,能有效提升JSON数据处理的效率。在实际项目中,结合使用合适的JSON库,可以进一步优化代码的可读性和维护性。
`JSONObject`和`JSONArray`是处理JSON数据的常用工具,它们分别对应JSON中的对象和数组。在Java集合框架中,`ArrayList`和泛型`List<T>`是常见的列表实现,泛型提供了更好的类型安全性和编程体验。在现代编程中,...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。在Java中,有许多库可以处理JSON,其中最常用的是org.json库。这个库提供了几个核心类,如JSONObject、...
- **创建JSONArray对象**:通过调用JSONArray的构造函数或使用静态工厂方法来创建JSONArray实例。例如,`new JSONArray()` 或者 `JSONArray.fromObject()`。 - **添加元素**:使用`add()`方法向JSONArray中添加元素...
// 创建JSONArray对象 JSONArray jsonArray = new JSONArray(jsonString); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); String name = jsonObject...
在这个方法里,你可以使用`LayoutInflater`来创建视图,并填充`Item`对象的数据。 ```java public class CustomAdapter extends BaseAdapter { private Context context; private List<Item> items; // 构造...
// 从字符串创建JSONArray ``` JSON的灵活性和简洁性使其成为数据交换的理想选择。在实际开发中,我们通常会用到更复杂的JSON结构,包括嵌套的JSONObject和JSONArray,以及处理null值等。在处理这些情况时,理解...
本文将深入探讨基于`json-lib.jar`包中的`JSONObject`类的四种常用用法。 1. **创建JSONObject** 创建`JSONObject`最常见的方式是从一个Java对象映射而来。`json-lib.jar`提供了`JsonBeanUtil`工具类,可以将Java...
Gson通过注解提供了一种简单的方法来自定义序列化和反序列化。 3. **org.json**: 这是一个轻量级的库,提供了简单的API来创建和解析JSON。例如,`JSONObject`和`JSONArray`类用于构建JSON结构,`JSONStringer`和`...
在这个主题中,我们将深入探讨三种在Android开发中常用的JSON解析方法:原生的`json`库,Google的`Gson`库以及Fastjson。这些方法适用于服务器端和客户端的开发,对于初学者来说是理解和实践JSON解析的重要步骤。 1...
可以通过`JSONObject.fromObject(String jsonStr)`或`JSONArray.fromObject(String jsonStr)`方法实现。 - **与Spring框架集成**:在Spring框架中,可以利用`@RequestBody`和`@ResponseBody`注解方便地处理JSON数据...
`org.json`包是Android SDK中一个常用的库,它提供了处理JSON对象的方法,使得在Java中操作JSON变得更加简单。本文将深入探讨`org.json`包在Android中的使用方法和关键知识点。 ### JSON对象与JSON数组 `org.json`...
在Android开发中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,因其轻量级、易读易写的特点,被广泛应用于服务器与客户端之间的数据通信。本教程将深入讲解如何在Android环境中构建JSON数据。 ...
- 使用`JSONArray.fromObject`方法可以将boolean数组转换为JSONArray对象,例如将`{true, false, true}`数组转换为`["true", "false", "true"]`的JSON数组。 - 类似地,可以将Java中的`List`集合转换为JSONArray,...
在Android开发中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,因其轻量级、易读易写的特点,常用于客户端与服务器之间的数据传输。本篇将详细讲解如何在Android中进行JSON的操作,包括读取JSON、...
这个库是Java中处理JSON的一种常用工具,提供了诸如解析JSON、创建JSON对象和数组、以及序列化和反序列化等功能。在使用前,需要先将其添加到项目依赖中。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ...
然后,你可以创建一个`Gson`对象,通过它的`toJson()`和`fromJson()`方法来进行JSON与Java对象之间的转换。 - 示例代码: ```java import com.google.gson.Gson; class GsonDataAnalysis { // 类的定义... }...
JSONObject是JSON数据结构的一种表示,它可以包含零个或多个键值对,每个键都是一个字符串,而对应的值可以是各种JSON数据类型:字符串、数字、布尔值、数组(JSONArray)、其他JSONObject或者null。创建JSONObject...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,设计简单且易于人阅读和编写,同时也易于机器解析和生成。JSON被广泛用于Web服务与客户端JavaScript之间的数据传输,...