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 对象转化为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