/**
* @author luxiangxing
* @time 2010-8-28
* @email xiangxingchina@163.com
* @tel 13488766519
*/
package teasoft.common.util;
import java.lang.reflect.Field;
import java.util.HashMap;
import teasoft.user.entity.User;
public class TypeConverterUtil {
/**
* 将一个对象转换成JSON字符串表示,该对象应该符合 JavaBean规范。
* 如果对象的某个属性不是数字或字符串,该属性将被忽略,不会出现在JSON字符串中
*
* @param obj
* 要转换的对象
* @return 描述该对象的JSON字符串,包括属性名与属性值
*/
public static String toJSON(Object obj) {
HashMap<String, String> map = new HashMap<String, String>();
Class c = obj.getClass();
Field[] fields = c.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
String name = fields[i].getName();
try {
fields[i].setAccessible(true);
Object o = fields[i].get(obj);
if (o instanceof Number) {
map.put("\"" + name + "\"", o.toString());
} else if (o instanceof String) {
map.put("\"" + name + "\"", "\"" + o.toString() + "\"");
}
} catch (IllegalArgumentException e) {
} catch (IllegalAccessException e) {
}
}
String s = map.toString();
String str = s.replaceAll("\"=", "\":");
return str;
}
/**
* 将一个对象转换成HashMap,该对象应该符合 JavaBean规范。
* @param obj
* 要转换的对象
* @return 描述该对象的hashMap,包括属性名与属性值
*/
public static HashMap toHashMap(Object obj) {
HashMap<String, String> map = new HashMap<String, String>();
Class c = obj.getClass();
Field[] fields = c.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
String name = fields[i].getName();
try {
fields[i].setAccessible(true);
Object o = fields[i].get(obj);
if ( o!=null && o instanceof Number) {
map.put( name , o.toString());
} else if (o!=null && o instanceof String) {
map.put( name , o.toString() );
}
} catch (IllegalArgumentException e) {
} catch (IllegalAccessException e) {
}
}
return map;
}
public static void main(String[] args) {
User user = new User();
user.setId(1);
user.setUserName("lxx");
HashMap hm = TypeConverterUtil.toHashMap(user);
System.out.println(hm.get("id"));
System.out.println(hm.get("userName"));
System.out.println(hm.get("password"));
}
}
分享到:
相关推荐
结果POJO映射 查询返回结果可以直接声明为POJO或POJO集合,其映射过程是依赖于cloud.agileframework:common-util对象深度转换器实现,所以支持 识别驼峰与下划线等风格属性的互转。只需声明,无需额外调用,以最低的...
能够指定自己的转换器 能够从更简单的转换中组合转换 支持自定义类型的转换 能够指定严格的转换模式 安装 将此行添加到应用程序的 Gemfile 中: gem "necromancer" 然后执行: $ bundle 或者自己安装: $ ...
18.4.5 查询结果转换器 18.5 查询性能优化 18.5.1 iterate()方法 18.5.2 查询缓存 18.6 小结 18.7 思考题 第19章 Hibernate高级配置 19.1 配置数据库连接池 19.1.1 使用默认的数据库连接池 19.1.2...
抽象类里可以包含构造器,抽象类里的构造器并不是用于创建对象,而让其子类调用这些构 造器来完成属于抽象类的初始化操作。 •接口里不能包含初始化块,但抽象类则完全可以包含初始化块。 •一个类最多只能有一个...
如果文件的转换是相互独立的,那么实现 _transform 方法即可,否则需要实现 transformAll 方法,它们都返回 Promise 对象,两种转换器使用 isTorrential() 方法来区分。具体请参见 panto-transformer-...
json_decode 解析一个 ... 尽管此超集与较新的 RFC 7159(旨在取代 RFC 4627)中“JSON 文本”的扩展定义一致,但这可能会导致在对单个标量值进行编码时严格遵守 RFC 4627 的较旧 JSON 解析器的互操作性问题。 有关更多
将像素值转换为 ascii 转换器是我仅使用内置 Java 库提交的第一个任务的扩展。 该项目是一个(有点无意义的)多线程应用程序,它加载图像,将其转换为灰度并将像素数据重新处理为 ascii 字符。 对我来说,这个项目的...
Java源文件的扩展名是.java.Java字节码的扩展名是.class. 7. D 8.〔1〕Speak.java 〔2〕生成两个字节码文件,这些字节码文件的名字Speak.class 和 Xiti8.class 〔3〕java Xiti8 〔4〕执行java Speak的错误提示 ...
在解释器模式中,语言中的每个符号都被定义为一个(对象)类,这样整个程序就被转换成一个具体的对象树。每个节点(即对象)都表示一个表达式中的一个符号,而整棵树则表示一个完整的表达式。通过遍历这棵树,解释器...
4.4.2.内置的类型转换器 4.4.3.自定义类型转换器 4.4.3.1.使用CustomConverterConfigurer类 4.5.自定义对象的行为 4.5.生命周期接口 4.5.1.1.IInitializingObject接口和init-method属性 4.5.1.2.IDisposable接口和...
Ipe是用于以PDF格式创建图形的图形编辑器。它支持制作小数字以包含在LaTeX文档中,以及进行多页PDF演示。 Ipe的主要功能是: 输入文本作为LaTeX源代码。这使得输入数学表达式和重用主文档的LaTeX宏变得容易。在...
18.4.5 查询结果转换器 18.5 查询性能优化 18.5.1 iterate()方法 18.5.2 查询缓存 18.6 小结 18.7 思考题 第19章 Hibernate高级配置 19.1 配置数据库连接池 19.1.1 使用默认的数据库连接池 19.1.2...
18.4.5 查询结果转换器 18.5 查询性能优化 18.5.1 iterate()方法 18.5.2 查询缓存 18.6 小结 18.7 思考题 第19章 Hibernate高级配置 19.1 配置数据库连接池 19.1.1 使用默认的数据库连接池 19.1.2...
18.4.5 查询结果转换器 18.5 查询性能优化 18.5.1 iterate()方法 18.5.2 查询缓存 18.6 小结 18.7 思考题 第19章 Hibernate高级配置 19.1 配置数据库连接池 19.1.1 使用默认的数据库连接池 19.1.2...
1.8.4. MySQL对标准SQL的扩展 1.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. ...
五、支持自定义转换器(IValueConverter); 六、支持对象集合(ICollection)和支持动态字典集合(ICollection, object>>)的绑定 ; 七、对象集合使用 AddBindingPathTemplateColumn 函数,字典集合使用 ...
ActiveRecord扩展,将类型转换添加到存储访问器。 与Rails 4.2和Rails 5+兼容。 从未合并的PR提取到Rails: 。 安装 在您的Gemfile中: # for Rails 5+ (6 is supported) gem "store_attribute" , "~> 0.8.0" # ...
UnityClothSkirtHelper开源版本编辑器扩展,简化了使用Unity的Cloth组件创建裙的任务。 对于VRChat。 *图像正在开发中。安装ClothSkirtHelper-{VERSION}.unitypackage Unity并将包含的ClothSkirtHelper-{VERSION}....