java对象转json(Java对象转Json)
java有没有什么框架能把java对象转为json字符串
就目前来看,Google的GSON组件不错。至少我在开发中来看,是目前最棒的,而且支持 JDK5 的泛型。
User 用户类:
public class User {
@Expose
private Long id;
@Expose
private String name;
public Long getId() {
return id;
public void setId(Long id) {
this.id = id;
public String getName() {
return name;
public void setName(String name) {
this.name = name;
// 测试 JavaBean 的转换
public class Test {
public static void main(String[] args) {
User user = new User();
user.setId(1001L);
user.setName(“张三”);
GsonBuilder builder = new GsonBuilder();
// 不转换没有 @Expose 注解的字段
builder.excludeFieldsWithoutExposeAnnotation();
Gson gson = builder.create();
String sUser = gson.toJson(user);
System.out.println(sUser);
// {“id”:1001,”name”:”张三”}
// 将JSON字符串转换为 JavaBean
User user2 = gson.fromJson(sUser, User.class);
System.out.println(user2.getId() + “, “ + user2.getName());
// 1001, 张三
}
// 测试 HashMap 的转换
public class MapTest {
public static void main(String[] args) {
User user1 = new User();
user1.setId(1001L);
user1.setName(“张三”);
User user2 = new User();
user2.setId(1002L);
user2.setName(“李四”);
Map userMap = new HashMap();
userMap.put(“user1”, user1);
userMap.put(“user2”, user2);
GsonBuilder builder = new GsonBuilder();
// 不转换没有 @Expose 注解的字段
builder.excludeFieldsWithoutExposeAnnotation();
Gson gson = builder.create();
String sUserMap = gson.toJson(user, new TypeToken>(){}.getType());
System.out.println(sUserMap);
// {“user1”:{“id”:1001,”name”:”张三”},”user2”:{“id”:1002,”name”:”李四”}}
// 将JSON字符串转换为 HashMap
Map userMap2 = (Map)gson.fromJson(sUser, new TypeToken>(){}.getType());
System.out.println(userMap2.get(“user1”).getName());
// 张三
}
当然 GSON的JSON解析设置还不止这些,还有版本的注解、更改字段名称的注解等等。
上面给的网址上有具体的开发文档,和详细的例子。
如今 GSON 已被很多公司所采用,方便快捷。Google就是比较强大。展开全部
只是要求转化成字符串的话,可以试试..重写toString方法
@Override
public String toString(){
return “{id:”+this.id+”,”name=’”+this.name+”‘“};
}展开全部
看看展开全部
导个json.lib包就可以了呗。也可以自己写。不过,有现成的包。直接用。private valuefilter filter = new valuefilter() {
@override
public object process(object obj, string s, object v) {
if(v==null)
return “”;
return v;
json.tojsonstring(jsonmap, filter)展开全部
这很简单拉 这种小框架可以自己些嘛.
如何将Java对象转换成json格式,如何将json格式数据转换成js对象
开始看网上关于json的例子程序段,实验了一把发现结果和网上例子程序的结果不一致,后来发现使用json需要导入的jar包不全,只导入json-lib-2.2.2-jdk15.jar ,还需以下几个包:commons-beanutils-1.7.0.jar
commons-collections-3.2.jar
commons-lang.jar
commons-logging-1.1.jar
ezmorph-1.0.4.jar
这时在测试得到了想要的结果
Question q2 = new Question();
q2.setId(2);
q2.setDescription(“descrsssss”);
q2.setPointInfo(“pointkkkk”);
q2.setType(3);
Question q1 = new Question();
q1.setId(1);
q1.setDescription(“descrsssss”);
q1.setPointInfo(“pointkkkk”);
q1.setType(3);
JSONObject jsonObject = new JSONObject().fromObject(q2);
System.out.println(jsonObject);
List list = new ArrayList();
list.add(q1);
list.add(q2);
JSONArray jsonArr= JSONArray.fromObject(list);
System.out.println(jsonArr);
输出:{“description”:”descrsssss”,”id”:2,”pointInfo”:”pointkkkk”,”type”:3}
[{“description”:”descrsssss”,”id”:1,”pointInfo”:”pointkkkk”,”type”:3},{“description”:”descrsssss”,”id”:2,”pointInfo”:”pointkkkk”,”type”:3}]页面
$.post(“showQuestions?type=”+type,null,callbackShowQuestions,”json”);
这时在回调函数的参数data获得的就是json转换后的js对象数组,
以下标方式便可访问数组里的相应对象信息。
还没有评论,来说两句吧...