【IT专家】在JAVA中封装JSONUtils工具类及使用 (转)
Java项目工程中utils包与tools包的理解
Java项⽬⼯程中utils包与tools包的理解在java⼯程中,⼀般我们会⽤Utils或Tools的包名来封装⼀些通⽤的⼯具类。
单单从字⾯上来看,两者都可以表⽰⼯具的意思,但往往并不能做出⽐较精准的定义。
以下是本⼈对utils包与tools包的定义及理解:定义:包名定义⽅法或属性举例utils 通⽤的且与项⽬业务⽆关的类的组合;可供其他项⽬使⽤⽅法通常是public static的;⼀般⽆类的属性,如果有,也是public static的字符串⼯具类,⽂件⼯具类等tools 当前项⽬中通⽤的业务类的组合;仅能当前项⽬使⽤不限⽤户校验⼯具类,⽀付⼯具类等例⼦:Utils:public class StringUtils {...public static final String SPACE = " ";public static final String EMPTY = "";...public static boolean isEmpty(final CharSequence cs) {return cs == null || cs.length() == 0;}public static boolean isBlank(final CharSequence cs) {int strLen;if (cs == null || (strLen = cs.length()) == 0) {return true;}for (int i = 0; i < strLen; i++) {if (!Character.isWhitespace(cs.charAt(i))) {return false;}}return true;}...}Tools:/***验证⼯具类接⼝定义*/public interface VerificationTools {/*** 发送邮件验证码* @param code 验证码* @return EmailVo*/EmailVo sendEmail(VerificationCode code);/*** 验证⽤户* @param user实体类* @return返回是或否*/Boolean validatedUser(User user);}。
JAVA使用JDBC连接数据库做JSON封装和解析的例子
JAVA使用JDBC连接数据库做JSON封装和解析的例子Java是一种广泛应用于互联网和企业级应用开发的编程语言,而JDBC是Java的一种标准接口,用于连接和操作数据库。
在JDBC的基础上,我们可以使用JSON来封装和解析数据库中的数据。
下面是一个使用JDBC连接数据库做JSON封装和解析的例子。
首先,我们需要导入JDBC和JSON相关的包。
```javaimport java.sql.*;import org.json.JSONArray;import org.json.JSONObject;```接下来,我们需要连接数据库并执行查询操作,将查询结果封装成JSON格式。
```javapublic class JDBCExamplepublic static void main(String[] args)//连接数据库String url = "jdbc:mysql://localhost:3306/test";String username = "root";String password = "root";try(Connection connection = DriverManager.getConnection(url, username, password))//执行查询语句String query = "SELECT * FROM students";Statement statement = connection.createStatement(;ResultSet resultSet = statement.executeQuery(query);//创建JSON对象和数组JSONArray jsonArray = new JSONArray(;while (resultSet.next()JSONObject jsonObject = new JSONObject(;jsonObject.put("id", resultSet.getInt("id"));jsonObject.put("name", resultSet.getString("name"));jsonObject.put("age", resultSet.getInt("age"));jsonArray.put(jsonObject);}//输出JSON数据System.out.println(jsonArray.toString();} catch (SQLException e)e.printStackTrace(;}}```在上述代码中,我们首先使用`DriverManager.getConnection`方法连接数据库,然后使用`statement.executeQuery`方法执行查询语句,得到结果集。
关于Jackson的JSON工具类封装JsonUtils用法
关于Jackson的JSON⼯具类封装JsonUtils⽤法直接上代码,都有注释,⼀看就懂,完全满⾜⽇常开发需求import com.fasterxml.jackson.annotation.JsonInclude.Include;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.core.type.TypeReference;import com.fasterxml.jackson.databind.DeserializationFeature;import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.SerializationFeature;import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;import java.io.IOException;import java.text.SimpleDateFormat;import lombok.extern.slf4j.Slf4j;/*** 基于Jackson的JSON转换⼯具类** @author ye17186* @version 2018/6/29 12:06*/@Slf4jpublic class JsonUtils {private static ObjectMapper om = new ObjectMapper();static {// 对象的所有字段全部列⼊,还是其他的选项,可以忽略null等om.setSerializationInclusion(Include.ALWAYS);// 设置Date类型的序列化及反序列化格式om.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));// 忽略空Bean转json的错误om.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);// 忽略未知属性,防⽌json字符串中存在,java对象中不存在对应属性的情况出现错误om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);// 注册⼀个时间序列化及反序列化的处理模块,⽤于解决jdk8中localDateTime等的序列化问题om.registerModule(new JavaTimeModule());}/*** 对象 => json字符串** @param obj 源对象*/public static <T> String toJson(T obj) {String json = null;if (obj != null) {try {json = om.writeValueAsString(obj);} catch (JsonProcessingException e) {log.warn(e.getMessage(), e);throw new IllegalArgumentException(e.getMessage());}}return json;}/*** json字符串 => 对象** @param json 源json串* @param clazz 对象类* @param <T> 泛型*/public static <T> T parse(String json, Class<T> clazz) {return parse(json, clazz, null);}/*** json字符串 => 对象** @param json 源json串* @param type 对象类型* @param <T> 泛型*/public static <T> T parse(String json, TypeReference type) {return parse(json, null, type);}/*** json => 对象处理⽅法* <br>* 参数clazz和type必须⼀个为null,另⼀个不为null* <br>* 此⽅法不对外暴露,访问权限为private** @param json 源json串* @param clazz 对象类* @param type 对象类型* @param <T> 泛型*/private static <T> T parse(String json, Class<T> clazz, TypeReference type) {T obj = null;if (!StringUtils.isEmpty(json)) {try {if (clazz != null) {obj = om.readValue(json, clazz);} else {obj = om.readValue(json, type);}} catch (IOException e) {log.warn(e.getMessage(), e);throw new IllegalArgumentException(e.getMessage());}}return obj;}}如何使⽤就更简单了public static void main(String[] args) {TestModel model1 = new TestModel();model1.setId("A");model1.setDate1(new Date());model1.setDate2(LocalDate.now());model1.setDate3(LocalDateTime.now());model1.setTime(LocalTime.now());TestModel2<TestModel> model2 = new TestModel2<>();model2.setId("PA");model2.setSub(model1);String json1 = JsonUtils.toJson(model1);String json2 = JsonUtils.toJson(model2);System.out.println(json1);System.out.println(json2);// 简单对象可以⽤这个TestModel obj1 = JsonUtils.parse(json1, TestModel.class);TestModel2<TestModel> obj2 = JsonUtils.parse(json2, TestModel2.class);// 需要准确泛型的复杂对象可以⽤这个,这种⽅式与上⾯有细微差别,读者可以⾃⾏debug研究 TestModel2<TestModel> obj3 = JsonUtils.parse(json2, new TypeReference<TestModel2<TestModel>>() {});System.out.println(obj1);System.out.println(obj2);System.out.println(obj3);}程序输出:以上这篇关于Jackson的JSON⼯具类封装 JsonUtils⽤法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
java.util包下的类及常用方法
java.util包下的类及常⽤⽅法1、⽇期类 Date类
常⽤⽅法
创建⽇期对象:Date date = new Date ( ) ;
获取当前时间以标准格式:date
获取当前时间的毫秒数:date.getTIme ( )
获取纪元时间:date。
toGMTString ( )
时间转成字符串:date.toString ( )
这个类的⼀些⽅法已经过时了、被⽇历类取代!
2、⽇历类 Calender类
常⽤⽅法
getlnstance():获取⽇历对象
get():获取指定的单位的⽇历数值(年,⽉,⽇等等)
set():设置指定单位的⽇历数值
add():添加指定单位的⽇历数值
getTimelnMills():获取⽇历的毫秒数
3、SCanner类
常⽤⽅法
扫描控制台:Scanner sc = new Scanner(System.in)
扫描字符串,遇到空格就返回给程序:sc.next()
扫描⼀个整数:sc.nextInt()
扫描⼀个⼩数:sc.nextDouble()
扫描⼀⾏:sc.nextLine()
4、定时器类 Timer类
常⽤⽅法
创建TImer对象:
Timer timer = new Timer();
Timer timer = new Timer(name);
timer.schedule(TimerTask,2000); 2秒后执⾏⼀次任务
t imer.schedule(TimerTask,2000,1000); 2秒后开始执⾏任务,每1s执⾏⼀次。
java json 用法
Java中的JSON用法JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web应用程序之间传输数据。
Java语言提供了多种处理JSON数据的方式,其中最常见的是使用JSON 库,如Jackson、Gson和Fastjson等。
一、Jackson库的使用Jackson是Java中常用的JSON库之一,它提供了丰富的功能来处理JSON数据。
下面是一个简单的示例,演示了如何使用Jackson库将Java对象转换为JSON字符串,以及将JSON字符串解析为Java对象。
引入Jackson依赖在使用Jackson之前,需要将其添加到项目的依赖中。
如果你使用的是Maven构建工具,可以在pom.xml文件中添加以下依赖:java<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.0</version></dependency>Java对象转换为JSON字符串假设有一个名为Person的Java类,包含id、name和age属性。
我们可以使用Jackson 的ObjectMapper类将其转换为JSON字符串。
javaimport com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.annotation.JsonSerialize;import com.fasterxml.jackson.databind.annotation.JsonSerialize.Inclusion;import com.fasterxml.jackson.databind.serialization.IndentOutput;public class Main {public static void main(String[] args) throws Exception {Person person = new Person(1, "Alice", 30);ObjectMapper mapper = new ObjectMapper();String json = mapper.writeValueAsString(person);System.out.println(json);}}JSON字符串解析为Java对象同样地,我们可以使用ObjectMapper类将JSON字符串解析为Java对象。
JSON在Java中的使用(一)
JSON在Java中的使⽤(⼀)1.去JSON官⽹下载org.json包2.在pom.xml中引⼊org.json依赖新建⼀个maven项⽬,在pom.xml中配置org.json依赖把org.json引⽤到项⽬之后,就可以使⽤JSONObject对象,可以去JSON官⽹下载JSON doc⽂档查看有关JSONObject的相关信息(package-summary.html)3.在Java中使⽤JSON的⽅法⽅法⼀:使⽤JSONObject来⽣成JSON格式数据原JSON格式数据:1 {2 "name" : "王⼩⼆",3 "age" : 25.2,4 "birthday" : "1990-01-01",5 "schoole" : "蓝翔",6 "major" : ["理发","挖掘机"],7 "has_girlfriend" : false,8 "car" : null,9 "house" : null 10 }Java代码:1package json;2import org.json.JSONObject;3public class JsonObjectSample{45public static void main(String[] args){6 jSONObject();7 }8 }9private static void jSONObject(){10 JSONObject wangxiaoer = new JSONObject();//new⼀个JSONObject对象,命名为wangxiaoer11 Object nullObj = null; //解决put中因⼆义性引起的编译错误12try{13 wangxiaoer.put("name","王⼩⼆");14 wangxiaoer.put("age",25.2);15 wangxiaoer.put("birthday","1990-01-01");16 wangxiaoer.put("school","蓝翔");17 wangxiaoer.put("major",new String[] {"理发","挖掘机"});18 wangxiaoer.put("has_girlfriend",false);19 wangxiaoer.put("car",nullObj);20 wangxiaoer.put("house",nullObj);21 System.out.println(wangxiaoer.toString());//输出JSON格式的wangxiaoer数据22 }catch(JSONException e){23 e.printStackTrace();24 }25 }运⾏Java程序控制台打印输出:{"age":25.2,"birthday":"1990-01-01","car":null,"has_girlfriend":false,"house":null,"major":["理发","挖掘机"],"name":"王⼩⼆","schoole":"蓝翔"}把打印输出的数据利⽤JSON编辑器格式化⼀下,并转换成我们的⽬标值:以上我们通过JSONObject构建完成了JSON格式数据,其中我们主要⽤到put⽅法来增加wangxiaoer对象的属性。
java后台封装json数据学习总结(一)
java后台封装json数据学习总结(⼀)⼀、数据封装1. List集合转换成json代码 List list = new ArrayList(); list.add( "first" ); list.add( "second" ); JSONArray jsonArray2 = JSONArray.fromObject( list );2. Map集合转换成json代码 Map map = new HashMap(); map.put("name", "json"); map.put("bool", Boolean.TRUE); map.put("int", new Integer(1)); map.put("arr", new String[] { "a", "b" }); map.put("func", "function(i){ return this.arr[i]; }"); JSONObject json = JSONObject.fromObject(map);3. Bean转换成json代码 JSONObject jsonObject = JSONObject.fromObject(new JsonBean());4. 数组转换成json代码 boolean[] boolArray = new boolean[] { true, false, true }; JSONArray jsonArray1 = JSONArray.fromObject(boolArray);5. ⼀般数据转换成json代码 JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" );⼆、JAR包简介mons-lang.jarmons-beanutils.jarmons-collections.jarmons-logging.jar5.ezmorph.jar6.json-lib-2.2.2-jdk15.jar⽤法同上 JSONObject jsonObject = JSONObject.fromObject(message); getResponse().getWriter().write(jsonObject.toString());当把数据转为json后,⽤如上的⽅法发送到客户端。
Java中的JSON解析与操作
Java中的JSON解析与操作在Java编程语言中,JSON(JavaScript Object Notation)是一种常用的数据交换格式。
JSON解析和操作在Java中是非常重要的技能,它允许开发人员进行数据的序列化和反序列化,有效地处理和处理数据。
本文将介绍Java中JSON解析和操作的基本知识和常用技巧。
一、JSON介绍JSON是一种轻量级的数据交换格式,具有易于理解和编写的特点。
它使用人类可读的文本格式表示简单数据结构和对象的集合,常用于将数据从服务器发送到web页面。
JSON由键值对组成,使用花括号{}表示对象,使用方括号[]表示数组。
以下是一个JSON示例:{"name": "John","age": 30,"city": "New York"}在Java中,可以使用各种库和工具来解析和操作JSON。
下面我们将介绍两种常用的方法:使用JSON库和使用Jackson库。
二、使用JSON库解析和操作JSONJSON库是一种Java工具,可以方便地解析和操作JSON数据。
常用的JSON库包括Gson、JSON-lib和JSON.simple等。
下面以Gson为例,介绍如何使用JSON库解析和操作JSON。
1. 导入Gson库首先,需要在项目中导入Gson库的jar文件。
可以从官方网站上下载,然后将其添加到项目的依赖中。
2. 解析JSON要解析JSON,首先需要创建一个Gson对象。
然后使用fromJson()方法将JSON字符串解析为Java对象。
例如,以下代码将解析名为"person.json"的JSON文件:```Gson gson = new Gson();Reader reader = new FileReader("person.json");Person person = gson.fromJson(reader, Person.class);```3. 操作JSON解析完JSON后,可以通过对象的属性和方法来操作JSON数据。
Java实现的JSONUtil工具类与用法示例
Java实现的JSONUtil⼯具类与⽤法⽰例本⽂实例讲述了Java实现的JSONUtil⼯具类与⽤法。
分享给⼤家供⼤家参考,具体如下:import java.util.HashMap;import java.util.Map;import com.alibaba.druid.util.StringUtils;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;public class JSONUtils {/*** Bean对象转JSON** @param object* @param dataFormatString* @return*/public static String beanToJson(Object object, String dataFormatString) {if (object != null) {if (StringUtils.isEmpty(dataFormatString)) {return JSONObject.toJSONString(object);}return JSON.toJSONStringWithDateFormat(object, dataFormatString);} else {return null;}}/*** Bean对象转JSON** @param object* @return*/public static String beanToJson(Object object) {if (object != null) {return JSON.toJSONString(object);} else {return null;}}/*** String转JSON字符串** @param key* @param value* @return*/public static String stringToJsonByFastjson(String key, String value) {if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value)) {return null;}Map<String, String> map = new HashMap<String, String>();map.put(key, value);return beanToJson(map, null);}/*** 将json字符串转换成对象** @param json* @param clazz* @return*/public static Object jsonToBean(String json, Object clazz) {if (StringUtils.isEmpty(json) || clazz == null) {return null;}return JSON.parseObject(json, clazz.getClass());}/*** json字符串转map** @param json* @return*/@SuppressWarnings("unchecked")public static Map<String, Object> jsonToMap(String json) {if (StringUtils.isEmpty(json)) {return null;}return JSON.parseObject(json, Map.class);}}测试:JSON字符串转mappublic static void main(String[] args) {String jsonStr = "{'userName':'huangbaokang','password':'123456'}";Map<String, Object> map = JSONUtils.jsonToMap(jsonStr);System.out.println(map.get("userName"));}输出:huangbaokangJSON字符串转对象:新建User类public class User {private String userName;private String password;public String getUserName() {return userName;}public void setUserName(String userName) {erName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}public static void main(String[] args) {String jsonStr = "{'userName':'huangbaokang','password':'123456'}";User user = (User) JSONUtils.jsonToBean(jsonStr, new User());System.out.println("⽤户名="+user.getUserName()+" 密码="+user.getPassword());}测试输出:输出⽤户名=huangbaokang 密码=123456对象转JSONpublic static void main(String[] args) {User user = new User();user.setUserName("huangbaokang");user.setPassword("123456");String result = JSONUtils.beanToJson(user);System.out.println(result);}测试输出:{"password":"123456","userName":"huangbaokang"}在这⾥⼯具类应⽤的jar为阿⾥巴巴的fastjson,在lib中加⼊相关jar。
Java中的json数据类型操作
Java中的json数据类型操作package com.ss1.json;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;public class JsonParse {public static void main(String[] args) throws JSONException {//接收到的JSON字符串String result = "[{\"username\" : \"yourname\",\"nickname\" : \"yournickname\"}]";//根据字符串⽣成JSON对象JSONArray json = new JSONArray(result);JSONObject resultJson = json.optJSONObject(0);//获取数据项String username = resultJson.getString("username");System.out.println(username);String jsonStr = "{\"id\": 2," +" \"title\": \"json title\", " +"\"config\": {" +"\"width\": 34," +"\"height\": 35," +"}, \"data\": [" +"\"JAVA\", \"JavaScript\", \"PHP\"" +"]}";//创建JSONObject对象JSONObject jsonObject = new JSONObject(jsonStr);System.out.println(jsonObject.getInt("id"));System.out.println(jsonObject.getString("title"));JSONObject config = jsonObject.getJSONObject("config");System.out.println(config.getInt("width"));//向json中添加数据JSONObject json1 = new JSONObject();json1.put("username", "cmy");json1.put("height", 172);json1.put("age", 23);//创建JSONArray数组,并将json添加到数组JSONArray jsonArray1 = new JSONArray();jsonArray1.put(json1);//转换为字符串System.out.println(jsonArray1.toString());//初始化ArrayList集合并添加数据List<String> list = new ArrayList<String>();list.add("username");list.add("age");list.add("sex");//初始化HashMap集合并添加数组Map map = new HashMap<>();map.put("bookname","css/html");map.put("price","42.0");//初始化JSONArray对象,并添加数据JSONArray array = new JSONArray();array.put(list);array.put(map);System.out.println(array);}}。
Jackson工具类(各种转换)
Jackson⼯具类(各种转换)⾸先要在项⽬中引⼊jackson的jar包(在此不做说明)下⾯直接上代码```java public class JacksonUtils {private final static ObjectMapper objectMapper = new ObjectMapper();private JacksonUtils() {}public static ObjectMapper getInstance() {return objectMapper;}/*** javaBean、列表数组转换为json字符串*/public static String obj2json(Object obj) throws Exception {return objectMapper.writeValueAsString(obj);}/*** javaBean、列表数组转换为json字符串,忽略空值*/public static String obj2jsonIgnoreNull(Object obj) throws Exception {ObjectMapper mapper = new ObjectMapper();mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);return mapper.writeValueAsString(obj);}/*** json 转JavaBean*/public static <T> T json2pojo(String jsonString, Class<T> clazz) throws Exception {objectMapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);return objectMapper.readValue(jsonString, clazz);}/*** json字符串转换为map*/public static <T> Map<String, Object> json2map(String jsonString) throws Exception {ObjectMapper mapper = new ObjectMapper();mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);return mapper.readValue(jsonString, Map.class);}/*** json字符串转换为map*/public static <T> Map<String, T> json2map(String jsonString, Class<T> clazz) throws Exception {Map<String, Map<String, Object>> map = objectMapper.readValue(jsonString, new TypeReference<Map<String, T>>() { });Map<String, T> result = new HashMap<String, T>();for (Map.Entry<String, Map<String, Object>> entry : map.entrySet()) {result.put(entry.getKey(), map2pojo(entry.getValue(), clazz));}return result;}/*** 深度转换json成map** @param json* @return*/public static Map<String, Object> json2mapDeeply(String json) throws Exception {return json2MapRecursion(json, objectMapper);}/*** 把json解析成list,如果list内部的元素存在jsonString,继续解析** @param json* @param mapper 解析⼯具* @return* @throws Exceptionprivate static List<Object> json2ListRecursion(String json, ObjectMapper mapper) throws Exception {if (json == null) {return null;}List<Object> list = mapper.readValue(json, List.class);for (Object obj : list) {if (obj != null && obj instanceof String) {String str = (String) obj;if (str.startsWith("[")) {obj = json2ListRecursion(str, mapper);} else if (obj.toString().startsWith("{")) {obj = json2MapRecursion(str, mapper);}}}return list;}/*** 把json解析成map,如果map内部的value存在jsonString,继续解析** @param json* @param mapper* @return* @throws Exception*/private static Map<String, Object> json2MapRecursion(String json, ObjectMapper mapper) throws Exception { if (json == null) {return null;}Map<String, Object> map = mapper.readValue(json, Map.class);for (Map.Entry<String, Object> entry : map.entrySet()) {Object obj = entry.getValue();if (obj != null && obj instanceof String) {String str = ((String) obj);if (str.startsWith("[")) {List<?> list = json2ListRecursion(str, mapper);map.put(entry.getKey(), list);} else if (str.startsWith("{")) {Map<String, Object> mapRecursion = json2MapRecursion(str, mapper);map.put(entry.getKey(), mapRecursion);}}}return map;}/*** 与javaBean json数组字符串转换为列表*/public static <T> List<T> json2list(String jsonArrayStr, Class<T> clazz) throws Exception {JavaType javaType = getCollectionType(ArrayList.class, clazz);List<T> lst = (List<T>) objectMapper.readValue(jsonArrayStr, javaType);return lst;}/*** 获取泛型的Collection Type** @param collectionClass 泛型的Collection* @param elementClasses 元素类* @return JavaType Java类型* @since 1.0*/public static JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) {return objectMapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);}/*** map 转JavaBean*/public static <T> T map2pojo(Map map, Class<T> clazz) {return objectMapper.convertValue(map, clazz);/*** map 转json** @param map* @return*/public static String mapToJson(Map map) {try {return objectMapper.writeValueAsString(map);} catch (Exception e) {e.printStackTrace();}return "";}/*** map 转JavaBean*/public static <T> T obj2pojo(Object obj, Class<T> clazz) { return objectMapper.convertValue(obj, clazz);}}<p>导⼊相应的包就可以使⽤,个⼈觉得还是挺⽅便的</p>。
java jsonarray用法
java jsonarray用法Java的JSONArray类是用于创建和操作JSON数组的工具类。
JSONArray类提供了以下常用方法:- `add(Object value)`:向JSON数组添加一个元素。
- `get(int index)`:获取JSON数组中指定索引位置的元素。
- `length()`:获取JSON数组的长度。
- `put(int index, Object value)`:在指定索引位置插入一个元素。
- `remove(int index)`:删除指定索引位置的元素。
- `toString()`:将JSON数组转换为字符串。
以下是一个例子,展示如何使用JSONArray类创建和操作JSON数组:```javaimport org.json.JSONArray;import org.json.JSONException;public class JSONArrayExample {public static void main(String[] args) {try {// 创建一个空的JSON数组JSONArray jsonArray = new JSONArray();// 向JSON数组添加元素jsonArray.add("apple");jsonArray.add("banana");jsonArray.add("orange");// 获取JSON数组的长度int length = jsonArray.length();System.out.println("JSON数组的长度:" + length);// 获取JSON数组中指定索引位置的元素String fruit = jsonArray.getString(1);System.out.println("第2个元素:" + fruit);// 在指定索引位置插入一个元素jsonArray.put(1, "grape");System.out.println("插入后的JSON数组:" + jsonArray.toString()); // 删除指定索引位置的元素jsonArray.remove(2);System.out.println("删除后的JSON数组:" + jsonArray.toString()); } catch (JSONException e) {e.printStackTrace();}}}运行结果:JSON数组的长度:3第2个元素:banana插入后的JSON数组:["apple","grape","banana","orange"]删除后的JSON数组:["apple","grape","orange"]。
java json嵌套转义示例
java json嵌套转义示例Java中的JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。
它以人类可读的方式存储和传输数据,并且易于解析和生成。
在实际开发中,我们经常会遇到JSON数据的嵌套转义问题,本文将以示例的方式介绍如何进行嵌套转义。
我们需要了解什么是JSON的嵌套转义。
当一个JSON对象中的某个属性的值也是一个JSON对象时,就发生了嵌套转义。
例如,我们有一个JSON对象person,其中包含了一个属性address,其值也是一个JSON对象。
在进行JSON转义时,我们需要确保内层的JSON对象被正确解析和生成。
下面是一个简单的示例,展示了如何进行JSON嵌套转义。
假设我们有一个Person类,包含了姓名和地址两个属性。
```javapublic class Person {private String name;private Address address;// 省略getter和setter方法}public class Address {private String city;private String street;// 省略getter和setter方法}```现在,我们要将一个Person对象转换为JSON字符串。
首先,我们可以使用Java中的JSON库,如Jackson或Gson,将Person 对象转换为JSON对象。
然后,再将JSON对象转换为字符串。
```javaPerson person = new Person();person.setName("张三");Address address = new Address();address.setCity("北京");address.setStreet("朝阳区");person.setAddress(address);// 使用Jackson库将Person对象转换为JSON字符串ObjectMapper objectMapper = new ObjectMapper();String json = objectMapper.writeValueAsString(person); System.out.println(json);```运行以上代码,我们可以得到如下的JSON字符串:```json{"name": "张三","address": {"city": "北京","street": "朝阳区"}}```在这个JSON字符串中,我们可以看到address属性的值是一个嵌套的JSON对象。
浅谈Java工具类CommonUtils的使用
浅谈Java⼯具类CommonUtils的使⽤package ;import java.util.HashMap;import java.util.Map;import org.junit.Test;import monUtils;/*** 测试CommonUtils类* @author Administrator**/public class CommonUtilsTest {/*** 测试:返回⼀个随机32位长得字符串* CommonUtils类依赖的jar包* ⽤途:* 1.⽤来做id,数据库表中的主键是不能重复的,它就是不重复的* 2.激活码也是不重复的**/@Testpublic void testUuid(){String s=CommonUtils.uuid();System.out.println(s);}/*** 作⽤:把⼀个map中的数据封装⼤javabean中* 要求:要求map中的key名称与javabean中的属性名称相同*/@Testpublic void testToBean(){//1.创建mapMap<String,Object> map=new HashMap<String,Object>();map.put("pid", "123");map.put("pname", "xushouwei");map.put("age", 25);map.put("xxx", "男");//通过map的数据来创建Person类型的JavaBean对象 Person p=CommonUtils.toBean(map, Person.class); System.out.println(p);}}。
JSONUtils的几个常用方法
/*** * 将JSON文本反序列化为主从关系的实体 * @param 泛型T 代表主实体类型 * @param 泛型D1 代表从实体类型 * @param 泛型D2 代表从实体类型 * @param jsonString JSON文本 * @param mainClass 主实体类型 * @param detailName1 从实体类在主实体类中的属性 * @param detailClass1 从实体类型 * @param detailName2 从实体类在主实体类中的属性 * @param detailClass2 从实体类型 * @return */ public static <T, D1, D2> T toBean(String jsonString, Class<T> mainClass, String detailName1, Class<D1> detailClass1, String detailName2, Class<D2> detailClass2) { JSONObject jsonObject = JSONObject.fromObject(jsonString); JSONArray jsonArray1 = (JSONArray) jsonObject.get(detailName1); JSONArray jsonArray2 = (JSONArray) jsonObject.get(detailName2);
博客园 用户登录 代码改变世界 密码登录 短信登录 忘记登录用户名 忘记密码 记住我 登录 第三方登录/注册 没有账户,
JSONUtils的 几 个 常 用 方 法
1.首先新建1个JSONUtils类
Jackson常用方法以及jacksonUtil工具类详解
Jackson常⽤⽅法以及jacksonUtil⼯具类详解前⾔:项⽬中我们通常使⽤ajax返回json数据格式的形式进⾏前后端数据交互,所以会⽤到java数据json数据互相转化,通常我们的做法是在项⽬中创建⼀个⼯具类进⾏转化处理。
如下:我的demo包含了项⽬中常⽤的jacksonUtil类,以及常⽤的JSON JAVA处理数据转化处理⽅法。
项⽬结构以及引⽤jar包如下,jar包中的junit是⽤于单元测试,与jackson及其相关的包⽆关。
每个部分我都加了注释,直接copy下来运⾏就可以查看具体效果,下⾯直接上代码:实体类book:package test.entity;public class Book {private int bookId;//书的IDprivate String author;//作者private String name;//书名private int price;//书价public int getBookId() {return bookId;}public void setBookId(int bookId) {this.bookId = bookId;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public String getName() {return name;}public void setName(String name) { = name;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}@Overridepublic String toString() {return "Book [bookId=" + bookId + ", author=" + author + ", name="+ name + ", price=" + price + "]";}}jackson以及相关jar包对java以及json数据的具体处理⽅法,JackSonDemo类。
[Java]-Java中使用JSON(整理)
[Java]-Java中使⽤JSON(整理)⼀、JSON类库Json类库选择:Java中并没有内置JSON的解析,因此使⽤JSON需要借助第三⽅类库。
下⾯是⼏个常⽤的 JSON 解析类库:Gson:⾕歌开发的JSON库,功能⼗分全⾯。
FastJson:阿⾥巴巴开发的JSON库,性能⼗分优秀。
Jackson:社区⼗分活跃且更新速度很快。
⼆、FastJson简介Fastjson特性提供服务器端、安卓客户端两种解析⼯具,性能表现较好。
提供了 toJSONString() 和 parseObject() ⽅法来将 Java 对象与 JSON 相互转换。
调⽤toJSONString()⽅法即可将对象转换成 JSON 字符串,parseObject() ⽅法则反过来将 JSON 字符串转换成对象。
允许转换预先存在的⽆法修改的对象(只有class、⽆源代码)。
Java泛型的⼴泛⽀持。
允许对象的⾃定义表⽰、允许⾃定义序列化类。
⽀持任意复杂对象(具有深厚的继承层次和⼴泛使⽤的泛型类型)。
FastJson使⽤:<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version></dependency>其中 1.2.47 是版本号,根据需要使⽤特定版本,建议使⽤最新版本。
三、Fasjson中的主要类定义FastJson类库中最基本的类和⽅法定义:1、JSONJSON类在com.alibaba.fastjson.JSON包中。
JSON类提供了多种 Java对象<->JSON字符串直接互相转换的⽅法。
JSON.parseObject():从字符串解析 JSON 对象。
JSON.parseArray():从字符串解析 JSON 数组。
hutool的jsonutil原理
hutool的jsonutil原理Hutool是一个Java工具库,提供了丰富实用的工具类,其中的JsonUtil是用于处理JSON数据的工具类。
本文将介绍JsonUtil的原理及其在实际开发中的应用。
JsonUtil主要基于Jackson库实现,它提供了一系列静态方法,用于将Java对象转换为JSON字符串,或将JSON字符串转换为Java对象。
它的设计目标是简化开发者在处理JSON数据时的操作,提供更加便捷的方式来处理JSON数据。
我们来看看JsonUtil的常用方法之一:toJson。
该方法接受一个Java 对象作为参数,并返回对应的JSON字符串。
它会遍历对象的所有字段,将字段名和字段值转换为键值对,并将其拼接成一个符合JSON格式的字符串。
JsonUtil内部会利用Jackson库的功能,自动将Java对象的字段转换为JSON对象的键值对。
除了将Java对象转换为JSON字符串,JsonUtil还提供了fromJson 的方法,用于将JSON字符串转换为Java对象。
该方法接受两个参数,第一个参数是待转换的JSON字符串,第二个参数是目标Java 类的Class对象。
JsonUtil会根据JSON字符串和目标Java类的结构,自动创建一个对应的Java对象,并将JSON字符串中的值赋给该对象的字段。
JsonUtil还提供了一些其他的方法,例如toPrettyJson和toFormatJson,用于将JSON字符串进行美化和格式化。
这些方法可以使得JSON数据在打印和展示时更加易读。
在实际开发中,我们经常会遇到需要将Java对象转换为JSON字符串,或将JSON字符串转换为Java对象的情况。
使用JsonUtil可以大大简化这些操作,提高开发效率。
此外,JsonUtil还提供了丰富的灵活性和可配置性,可以通过设置不同的参数来满足不同的需求。
总结一下,JsonUtil是Hutool工具库中的一个用于处理JSON数据的工具类,它基于Jackson库实现,提供了一系列静态方法,用于将Java对象转换为JSON字符串,或将JSON字符串转换为Java对象。
java转json工具类说明文档
Java转json工具类说明文档在公版原型项目中,前台使用Ext框架进行数据展示,由于Ext框架的特性是对AJAX的完美支持,所以在项目中前台与后台的交互基本是通过AJAX实现,使页面无刷新。
大多的Ajax框架的数据交互都基于Json,所以本系统在选择前后台交互时也使用的是Json。
后台逻辑在后的前台请求后,进行相应处理,处理后结果为java对象,因为使用的是Json格式的数据交互,所以在后台得到处理结果(java对象)后,还需要再进行一步转换的工作,要将java对象转换为Json对象,然后返回给前台进行结果展示。
在此提供两个工具类JsonUtilsForJsonLib和JsonUtils,这两个类的作用都是将java对象转换为Json对象。
只不过一个是使用了官方提供的jar包,将java对象转换为JSONObject或JSONArray对象。
另一个是直接将java对象拼接为Json格式的字符串,再进行传递。
两个类都可以使用。
下面是两个类的使用说明文档:JsonUtils在使用此类时只需使用此类中的一个方法即可,方法如下:public static String objectToJson(Object obj)参数:Object obj返回值:String此方法接收一个参数,参数类型为Object,即任何类型,可以是基本数据类型(即String、int、double、boolean等等),也可以是引用数据类型(对象、数组、集合等等),在方法中会对传入的参数进行判断,然后根据具体的参数类型,调用不同的转换方法,最终返回Json 格式字符串。
注意:JsonUtils类返回值为String类型。
下面一一介绍此类中方法:public static String stringToJson(String s)参数:String s返回值:String此方法接收一个String类型的参数,返回此参数对应的Json格式字符串,如果参数为null,则调用nullToJson()方法,返回””(空字符串)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文由我司收集整编,推荐下载,如有疑问,请与我司联系
在JAVA 中封装JSONUtils 工具类及使用(转)
HashMap String, Object data = new HashMap String, Object (); JSONObject jsonObject = JSONUtils.toJSONObject(object); Iterator it = jsonObject.keys(); while (it.hasNext()) String key = String.valueOf(it.next()); Object value = jsonObject.get(key); data.put(key, value); return data; /*** * 将对象转换为List * @param object * @return
// 返回非实体类型(Map)的List public static List Map String, Object toList(Object object) List Map String, Object list = new ArrayList Map String, Object (); JSONArray jsonArray = JSONArray.fromObject(object); for (Object obj : jsonArray) JSONObject jsonObject = (JSONObject) obj; Map String, Object map = new HashMap String, Object (); Iterator it = jsonObject.keys(); while (it.hasNext()) String key = (String) it.next(); Object value = jsonObject.get(key); map.put((String) key, value); list.add(map); return list; /*** * 将JSON 对象数组转换为传入类型的List * @param * @param jsonArray *
@param objectClass * @return public static T List T toList(JSONArray jsonArray, Class T objectClass) return JSONArray.toList(jsonArray, objectClass); /*** * 将对象转换为传
入类型的List * @param * @param jsonArray * @param objectClass * @return public static T List T toList(Object object, Class T objectClass) JSONArray jsonArray = JSONArray.fromObject(object); return JSONArray.toList(jsonArray, objectClass); /*** *
将JSON 对象转换为传入类型的对象* @param * @param jsonObject * @param beanClass * @return public static T T toBean(JSONObject jsonObject, Class T beanClass)
return (T) JSONObject.toBean(jsonObject, beanClass); /*** * 将将对象转换为传入类型
的对象* @param * @param object * @param beanClass * @return public static T T toBean(Object object, Class T beanClass) JSONObject jsonObject = JSONObject.fromObject(object); return (T) JSONObject.toBean(jsonObject, beanClass); /*** * 将JSON 文本反序列化为主从关系的实体* @param 泛型T 代表主实体类型
* @param 泛型D 代表从实体类型* @param jsonString JSON 文本* @param mainClass 主实体类型* @param detailName 从实体类在主实体类中的属性名称*。