您的位置:首页 > Web前端 > JavaScript

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

2010-11-06 15:08 393 查看
Java代码

import
java.lang.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<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;

}

/**

* 将一个对象数组转换成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() {

return
name;

}

public

void
setName(String name) {

this
.name = name;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: