2012-05-22 51 views
0

我有一个对象,我们只是把它爪哇 - 转换对象映射用于JSON

class Foo { 
    String greeting = "Hello"; 
    int age = 21; 
} 

,我想转换成地图状"greeting" => "Hello", "age" => 21这将被用来作为参数在JSONSerializer.toJSON(arg)

像Perl和Python这样的语言在这种交换方面非常出色。在Java中执行此操作的好方法是什么?

+0

这可以通过使用反射来实现http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/reflect/package-summary.html – VirtualTroll

回答

1

在序列化之前,您不需要进行此转换。

Gson会直接使用你的对象,并使其成为JSON映射。

使用此例如:

Gson gson = new GsonBuilder().create(); 
writer.write(gson.toJson(foo)); // foo is an instance of Foo 
1

您可以使用Jackson直接序列化的POJO。开箱即可使用。

import java.io.Writer; 
import java.io.StringWriter; 
import org.codehaus.jackson.map.ObjectMapper; 

Foo foo = new MyFoo("hello", 21); 
ObjectMapper mapper = new ObjectMapper(); 
Writer writer= new StringWriter(); 
mapper.writeValue(writer, foo); 
String json = writer.toString(); 
System.out.println(json);