提供将对象转换成JSON字符串的方法

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

提供将对象转换成JSON字符串的方法

2009-03-17 16:52

import ng.reflect.Field;

import java.util.ArrayList;

import java.util.HashMap;

/**

* 提供将对象转换成JSON字符串的方法

*

* @author Bom Wu

* @create Mar 13, 2009

*/

public class JSON {

/**

* 将一个对象转换成JSON字符串表示,该对象应该符合 JavaBean规范。 * 如果对象的某个属性不是数字或字符串,该属性将被忽略,不会出现在JSON字符串中

*

* @param obj

* 要转换的对象

* @return 描述该对象的JSON字符串,包括属性名与属性值

*/

public static String toJSON(Object obj) {

HashMap map = new HashMap();

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;

}

/**

* 将一个对象数组转换成JSON字符串

*

* @param objs

* 要转换的对象数组

* @return 转换后得到的字符串

*/

public static String toJSON(Object[] objs) {

String[] strs = new String[objs.length];

for (int i = 0; i < objs.length; i++) {

strs[i] = toJSON(objs[i]);

}

return toJSONArray(strs);

}

/**

* 将多个JSON字符串转换成一个JSON字符串,并加入一个标识长度的属性length

*

* @param strs

* 要转换的多个JSON字符串

* @return 完整的一个JSON字符串

*/

public static String toJSONArray(String[] strs) {

StringBuffer sb = new StringBuffer();

sb.append("{");

for (int i = 0; i < strs.length; i++) {

sb.append("\"");

sb.append(i);

sb.append("\":");

sb.append(strs[i]);

sb.append(",");

}

sb.append("\"length\":");

sb.append(strs.length);

sb.append("}");

return sb.toString();

}

/**

* 测试

*

* @param args

*/

@SuppressWarnings("unchecked")

public static void main(String[] args) {

User user = new User();

user.setId("1234");

user.setName("hahaha");

user.setAge(21);

User user1 = new User();

user1.setId("5767");

user1.setName("hehehe");

user1.setAge(18);

ArrayList list = new ArrayList();

list.add(user);

list.add(user1);

// System.out.println(JSON.toJSON(user)); System.out.println(JSON.toJSON(list.toArray())); }

}

/**

* 用来测试的类

*

* @author Bom Wu

* @create Mar 13, 2009

*/

class User {

private String name;

private String id;

private int age;

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getName() {

相关文档
最新文档