对象转换成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;
}
}
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;
}
}
相关文章推荐
- jQuery.parseJSON(json)方法将字符串转换成js对象
- 字符串、数组、JSON字符串、JSON对象、DOMList转换方法总结
- Json字符串转换为java对象的各种实现方法【json_lib框架、Gson、org.json】
- JS中常用操作技巧(页面动态增加div,contain方法扩展,JSON对象鱼字符串转换)
- js 将json字符串转换为json对象的方法解析
- JSON学习(案列):js 将json字符串转换为json对象的方法解析
- Json字符串转换为JS对象方法
- $.post()方法与GSON工具包将Object对象转换为JSON字符串
- javascript 对象属性的添加,删除,json对象和字符串转换方法等
- 将key名不带双引号的JSON字符串转换成JSON对象的方法
- C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。
- C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。
- js 将json字符串转换为json对象的方法解析
- js中把JSON字符串转换成JSON对象最好的方法
- js' 字符串转换成JSON对象的方法
- Java中Json字符串直接转换为对象的方法(包括多层List集合)
- js 将json字符串转换为json对象的方法解析
- js 将json字符串转换为json对象的方法解析
- 将key名不带双引号的JSON字符串转换成JSON对象的方法