java jsonobject

人气:343 ℃/2022-12-11 16:26:17

java中jsonobject是什么,怎么使用呢?不知道的小伙伴来看看小编今天的分享吧!

1、JSONObject简介:

JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包。

2、项目环境:

system:WIN7 myeclipse:6.5 tomcat:5.0 JDK:开发环境和编译用的都是1.5。

项目结构如下:

3、JSONObject:A JSONObject is anunorderedcollection of name/value pairs.是一个final类,继承了Object,实现了JSON接口。

构造方法如下:

JSONObject();创建一个空的JSONObject对象

JSONObject(boolean isNull);创建一个是否为空的JSONObject对象

普通方法如下:

fromBean(Objectbean);静态方法,通过一个pojo对象创建一个JSONObject对象

fromJSONObject(JSONObjectobject);静态方法,通过另外一个JSONObject对象构造一个JSONObject对象

fromJSONString(JSONStringstring);静态方法,通过一个JSONString创建一个JSONObject对象

toString();把JSONObject对象转换为json格式的字符串

iterator();返回一个Iterator对象来遍历元素

接下来就是一些put/get方法,需要普通的get方法和pot方法做一下强调说明,API中是这样描述的:

Agetmethod returns a value if one can be found, and throws an exception if one cannot be found. Anoptmethod returns a default value instead of throwing an exception, and so is useful for obtaining optional values.

4、JSONArray:A JSONArray is anorderedsequence of values.是一个final类,继承了Object,实现了JSON接口。

构造方法如下:

JSONArray();构造一个空的JSONArray对象

普通方法如下:

fromArray(Object[] array);静态方法,通过一个java数组创建一个JSONArray对象

fromCollection(Collectioncollection);静态方法,通过collection集合对象创建一个JSONArray对象

fromString(Stringstring);静态方法,通过一个json格式的字符串构造一个JSONArray对象

toString();把JSONArray对象转换为json格式的字符串

iterator();返回一个Iterator对象来遍历元素

接下来同样是put/get方法……

5、XMLSerializer:Utility class for transforming JSON to XML an back.一个继承自Object的类

构造方法如下:

XMLSerializer();创建一个XMLSerializer对象

普通方法如下:

setRootName(StringrootName);设置转换的xml的根元素名称

setTypeHintsEnabled(boolean typeHintsEnabled);设置每个元素是否显示type属性

write(JSONjson);把json对象转换为xml,默认的字符编码是UTF-8,

需要设置编码可以用write(JSONjson,Stringencoding)

对XML和JSON字符串各列一个简单的例子:

JSON:

{"password":"123456","username":"张三"}

xml

<?xml version="1.0" encoding="UTF-8"?>

<user_info>

<password>123456</password>

<username>张三</username>

</user_info>

以上就是小编今天的分享了,希望可以帮助到大家。

java jsonobject转map

Java 对象转化为Map

方式一: 利用FastJson 把对象转化为Map

1.项目引入依赖

<!-- https://mvnrepository.com/artifact/com.alibaba/fastJSON --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.56</version></dependency>

2.使用FastJson的ParseObject 方法

//导包import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.TypeReference;/**** @MethodName: getUserInfoDataByUserId* @Description: 根据useId查询用户信息,封装成map key:属性名,value:属性值* home.php?mod=space&uid=952169 userId 用户userId* @return*/public Map<String, String> getUserInfoDataByUserId(String userId) {Map<String, String> userMap = new HashMap<String, String>();BSysUser bSysUser = new BSysUser();if (StringUtils.isNoneBlank(userId)) {bSysUser = bSysUserService.selectByKey(userId);if (null != bSysUser) {//userMap = new BeanMap(bSysUser);userMap = JSON.parseObject(JSON.toJSONString(bSysUser), new TypeReference<Map<String, String>>() {});}}return userMap;}

3.提供接口,供其他模块调用

/**** @MethodName: getAppDataBySceneId* @Description: 根据userid获取用户信息* @param userId 用户userId* @param type 用户对象的属性名,例如 userName,trueName,mobile,userSex,photo* @return*/@ResponseBody@RequestMapping("/api/user/getUserSingleInfoByUserIdAndAttribute")public ResponseData getUserSingleInfoByUserIdAndAttribute(String userId, String type) {ResponseData data = operateFailed("获取数据失败");String message = "用户信息获取成功";if (StringUtils.isBlank(userId)) {data = operateFailed("userId 为空!");return data;}if (StringUtils.isBlank(type)) {data = operateFailed("type 属性名为空,例如userName,trueName,photo!");return data;}Map<String, String> userMap = getUserInfoDataByUserId(userId);String value = "";if (null != userMap && StringUtils.isNoneBlank(type)) {switch (type) {case "userName":value = userMap.get("userName");break;case "trueName":value = userMap.get("trueName");break;case "photo":value = userMap.get("photo");break;case "mobile":value = userMap.get("mobile");break;case "isDel":value = userMap.get("isDel");break;case "userSex":value = userMap.get("userSex");case "createTime":value = userMap.get("createTime");break;}}if (StringUtils.isNoneBlank(value)) {data = operateSucess(message, value);}return data;}

方式二: 利用反射进行转换

public class BeanMapUtilByReflect {/*** 对象转Map* @param object* @return* @throws IllegalAccessException*/public static Map beanToMap(Object object) throws IllegalAccessException {Map<String, Object> map = new HashMap<String, Object>();Field[] fields = object.getClass().getDeclaredFields();for (Field field : fields) {field.setAccessible(true);map.put(field.getName(), field.get(object));}return map;}/*** map转对象* @param map* @param beanClass* @param <T>* @return* @throws Exception*/public static <T> T mapToBean(Map map, Class<T> beanClass) throws Exception {T object = beanClass.newInstance();Field[] fields = object.getClass().getDeclaredFields();for (Field field : fields) {int mod = field.getModifiers();if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {continue;}field.setAccessible(true);if (map.containsKey(field.getName())) {field.set(object, map.get(field.getName()));}}return object;}}

方式三: 利用工具类进行转换

/**** @MethodName: getUserInfoDataByUserId* @Description: 根据useId查询用户信息,封装成map key:属性名,value:属性值* @param userId 用户userId* @return*/public Map<String, String> getUserInfoDataByUserId(String userId) {Map<String, String> userMap = new HashMap<String, String>();BSysUser bSysUser = new BSysUser();if (StringUtils.isNoneBlank(userId)) {bSysUser = bSysUserService.selectByKey(userId);if (null != bSysUser) {//import org.apache.commons.beanutils.BeanMap;//userMap = new BeanMap(bSysUser);//import org.apache.commons.beanutils.BeanUtils;//userMap = BeanUtils.describe(user);//效果等同userMap = JSON.parseObject(JSON.toJSONString(bSysUser), new TypeReference<Map<String, String>>() {});}}return userMap;}//import org.apache.commons.beanutils.BeanMap;//userMap = new BeanMap(bSysUser);<dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.3</version></dependency>

原文链接:https://blog.csdn.net/ZzzzjQqqq/article/details/125032432

推荐

首页/电脑版/网名
© 2025 NiBaKu.Com All Rights Reserved.