都知道JSONObject可以序列化对象但是能否改掉对象的属性名成呢?比如
public class Student{
private String id;
private String name;
/* get set 方法省略 */
}
Action中读取到所有的记录
List<Student> students = new ArrayList<Student>();
String s = JSONArray.fromObject(students).toString();
System.out.println(s);
输出结果为 [{"id":"1","name":"张三"}]
我想得到这样的结果:[{"id":"1","title":"张三"}] 就是原来属性名称为name,JSON格式想把属性名改成title,请大侠们支招!
public class Student{
private String id;
private String name;
/* get set 方法省略 */
}
Action中读取到所有的记录
List<Student> students = new ArrayList<Student>();
String s = JSONArray.fromObject(students).toString();
System.out.println(s);
输出结果为 [{"id":"1","name":"张三"}]
我想得到这样的结果:[{"id":"1","title":"张三"}] 就是原来属性名称为name,JSON格式想把属性名改成title,请大侠们支招!
解决方案 »
- 请问用java代码如何关闭Wow64DisableWow64FsRedirection
- javaweb项目启动出现问题
- JFreeChart 1.0.9细节问题
- bean:include问题
- 编译问题
- 请问哪里有jpetstore能够完全运行起来的例子?
- 再问:有谁会在axis中实现soap消息的加密和解密来实现安全的web service
- JbuilderX + Weblogic8.1 开发EJB时,怎样使用WebLogic中配好的连接池,访问数据库啦???
- 网上有没有什么现成的邮件系统啊(javamail做的),就像新浪或者搜狐邮件那样的
- struts中<html:link>标签如何使用?
- 谁做过农行接口吗?
- JSP程序设计-简易的信息管理系统,求高手帮我
或者用replaceAll()函数把name替换成title。。或者用HashMap代替Student
Map map = new HashMap();
map.put("id","xxx");
map.put("title","xxx");List<Map> students = new ArrayList<Map>();
students.add(map);
String s = JSONArray.fromObject(students).toString();
public String getTitle() {
return this.name;
}
然后,
JsonConfig config = new JsonConfig();
config.registerPropertyExclusion(Student.class, "name");
String s = JSONArray.fromObject(students, config).toString();
config.registerJsonPropertyNameProcessor(Student.class, new PropertyNameProcessor() {
@Override
public String processPropertyName(Class beanClass, String name) {
if ("name".equals(name)) {
return "title";
}
return name;
}
});JsonPropertyNameProcessor是java->json的时候,反过来,json->java的叫JavaPropertyNameProcessor