比如我用系统平台添加一条数据保存到数据库。这个保存到数据库的过程中会产生一个相应的对象也就是pojo
那么我现在得到了这个pojo里面有很多数据。一个字段对应一个嘛!现在我想把这个pojo里面的所有值(除了null和空)想把他变成一个文本形式的。看下面的例子
这个是我平台要输入的内容
标题: 标题1
时间:2013年9月3日
游玩地点:北京
人物:张山,李四
内容:一起去爬山
现在我想通过一个方法想把这几个输入的内容变成一句话:
标题1,2013年9月3日,北京,张山,李四,一起去爬山。
我现在不想一个一个的get然后拼接这样感觉一个量大而且很耗时间。
有没有哪位大神弄做求方法。谢谢了。
java方法功能
那么我现在得到了这个pojo里面有很多数据。一个字段对应一个嘛!现在我想把这个pojo里面的所有值(除了null和空)想把他变成一个文本形式的。看下面的例子
这个是我平台要输入的内容
标题: 标题1
时间:2013年9月3日
游玩地点:北京
人物:张山,李四
内容:一起去爬山
现在我想通过一个方法想把这几个输入的内容变成一句话:
标题1,2013年9月3日,北京,张山,李四,一起去爬山。
我现在不想一个一个的get然后拼接这样感觉一个量大而且很耗时间。
有没有哪位大神弄做求方法。谢谢了。
java方法功能
A(Date d,Address add){
this.d = d;
this.add = add;
}
然后A a = new(d,add);
public String toString() {
return("你想要的pojo的属性就可以了");
}
估计这样可以实现
public String toString(Object o)
{
String msg = o.getXXX()+ "," + o.getXXX() + "," + o.getXXX();
return msg;
}
一个pojo对应一个class没问题吧?
假如它是
class o{
time;
address;
person;
content;
***//其他内容
}
那么在它中间加个方法toString();变成
class o{
time;
address;
person;
content;
***//其他内容
toString(){
return this.time+","+this.address+","+this.person+","+this.content
}
}到时候pojo出来了,比如名字叫o1,那么o1.toString();就能得到想要的字符串
public String toString() {
StringBuffer sbuff = new StringBuffer(); sbuff.append("{"); Field[] fields = this.getClass().getDeclaredFields();
try {
for (Field field : fields) {
sbuff.append("\"" + field.getName() + "\":\"" + field.get(this) + "\",");
}
sbuff.deleteCharAt(sbuff.length() - 1);
} catch (Exception e) {
}
sbuff.append("}"); return sbuff.toString();
}
field.get(this) 得到对应的属性是不是只能是pulic权限的啊。如果是private 或者是 protect会报错了啊!
field.get(this) 得到对应的属性是不是只能是pulic权限的啊。如果是private 或者是 protect会报错了啊!用field.setAccessible(true)可以不进行安全检查,不过不写我实际使用中也没发现问题
JSONObject.fromObject(你的pojo).toString();这样就能把你pojo中的所有属性名与属性值转化成
key:value的形式了。而且你还可以使用JSONObject的JsonConfig进行过滤属性和更换属性名称属性值等等
其实我用反射转出来的那个就是个标准的json对象
其实我用反射转出来的那个就是个标准的json对象
用反射当然可以,json-lib的原理是用反射。只是自己写代码太多了而且就为了这个一个地方的运用你把toString方式重写了返回你要的属性,如果其他地方要的不是这些属性呢,岂不是自己还要再去写代码。我建议楼主使用json-lib就是因为他可以根据JsonConfig进行自己需求变化的增改或变化属性大大的减少代码量和提高灵活度
其实我用反射转出来的那个就是个标准的json对象
用反射当然可以,json-lib的原理是用反射。只是自己写代码太多了而且就为了这个一个地方的运用你把toString方式重写了返回你要的属性,如果其他地方要的不是这些属性呢,岂不是自己还要再去写代码。我建议楼主使用json-lib就是因为他可以根据JsonConfig进行自己需求变化的增改或变化属性大大的减少代码量和提高灵活度
现成工具固然方便,但需求稍微改改就不能适应了,而且lz要求的也不是json格式的数据,而且他这个自己写段代码也不复杂,授人以鱼不如授人以渔。
1.alt+shift+s
2.选择Generate toString() // 倒数第4行
3.默认情况下勾选了fields,即表示所有字段,你也可以任意勾选。
4.ok
你看看tostring方法。
如果你不想要 ", name=" 这些东西?使用正则替换
, \w+= 替换为 ,ok?