`
endual
  • 浏览: 3579059 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

gson(JSON字符串转换成一个相等的Java对象) (转)

    博客分类:
  • java
 
阅读更多


题下:
前段的string类型经过js合成string,传递到struts2中,中文居然是编程了乱码,
其实也不是乱码,类似----》中国人成了 /dkjd/iidf/pdfg/odof/
很明显是中文的一个字 由四个拼音组成了,这是什么码 ??
不过经过强大的gson的转换,小事情,转换好,乱码解决。

    public void toPerson(){
        String json = "{'data1':100,'data2':'hello','id':1}";
        Gson gson = new Gson();
        Person p = gson.fromJson(json, Person.class);
        System.out.println(" p :" +p.getId());
        System.out.println("p:"+p.getName());
        
        
    }

    public void toJsonString(){
        Person p = new Person();
        p.setId(1);
        Gson gson = new Gson();
        String s = gson.toJson(p,Person.class);
        System.out.println("s"+s);
    }

    public static void main(String[] args) {
        JsonConverter convert = new JsonConverter();
        convert.toPerson();
        //convert.toJsonString();


    }

}
 


  目前大多数使用gson的还要求在java类中使用java annotation,不完全支持POJO。
Gson这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。Gson支持任意复杂Java对象包括没有源代码的对象。
代码例子
     
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 
*/

package com.test.json;

import com.google.gson.Gson;

/**
 *
 * 
@author ann
 
*/
public class JsonConverter {
    
    
public void toPerson(){
        String json 
= "{'data1':100,'data2':'hello','id':1}";
        Gson gson 
= new Gson();
        Person p 
= gson.fromJson(json, Person.class);
        System.out.println(
" p :" +p.getId());
        System.out.println(
"p:"+p.getName());
        
        
    }

    
public void toJsonString(){
        Person p 
= new Person();
        p.setId(
1);
        Gson gson 
= new Gson();
        String s 
= gson.toJson(p,Person.class);
        System.out.println(
"s"+s);
    }

    
public static void main(String[] args) {
        JsonConverter convert 
= new JsonConverter();
        convert.toPerson();
        
//convert.toJsonString();


    }

}

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 
*/

package com.test.json;

/**
 *
 * 
@author ann
 
*/
public class Person {
    
private int id;
    
private String name;

    
public String getName() {
        
return name;
    }

    
public void setName(String name) {
        
this.name = name;
    }

    

    
public int getId() {
        
return id;
    }

    
public void setId(int id) {
        
this.id = id;
    }
    

}

下载http://code.google.com/p/google-gson/
分享到:
评论

相关推荐

    使用gson解析并生成json数据

    它允许我们把Java对象直接转换为JSON格式的字符串,同时也支持将JSON字符串转换回相应的Java对象,这在数据交换和存储时非常有用。 2. **JSON解析** - `Gson.toJson()`:这个方法用于将Java对象转换成JSON格式的...

    完美解决gson将Integer默认转换成Double的问题

    完美解决Gson将Integer默认转换成Double的问题 Gson是Google开发的一款JSON解析库,广泛应用于Android和...使用自定义的Gson对象和Double类型的序列化器,可以正确地将Json字符串转换成Map,Object>,而不会损失数据。

    实用小工具:Java实体类对比、Json对比、字符串动态拼接等功能

    对比两个JSON对象,可以使用Jackson库的ObjectMapper或者Gson库的fromJson方法将JSON字符串转换为Java对象,然后进行对象间的比较。也可以使用专门的JSON对比工具,如json-unit,它提供了一套API来比较两个JSON对象...

    json操作常用工具类

    Jackson是Java中最流行的JSON处理库之一,它提供了`com.fasterxml.jackson.databind.ObjectMapper`类,用于将JSON字符串转换为Java对象和反之。例如,你可以使用`readValue()`方法解析JSON字符串,`...

    java实现json报文比对(含测试数据,项目可直接下载运行测试)

    2. **对象转换**:将JSON字符串转换为Java对象,如HashMap、ArrayList或其他自定义对象。Jackson的`readValue`方法也可以做到这一点。 3. **深度比较**:JSON对象的比对不仅仅是键值对的简单比较,还需要考虑嵌套的...

    常用的类和方法1

    例如,可以将JSON字符串转换为基本数据类型或者自定义的Bean类。 2. `toJson(Object object)`:将Java对象转换为JSON格式的字符串。同样,这个方法也可以处理基本数据类型或自定义的Java对象。 在实际项目中,我们...

    SQLite数据库中插入对象(demo)

    3. **向SQLite数据库插入对象**:现在我们有了对象的序列化表示,可以将其作为字符串存入SQLite数据库。使用SQL的INSERT语句或ContentValues对象来实现。 ```java public void insertObject(MyObject obj) { ...

Global site tag (gtag.js) - Google Analytics