Java - 将对象转换为map以在JSON中使用

时间:2012-05-22 16:13:10

标签: java json dictionary map

我有一个对象,让我们称之为

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

我希望转换为"greeting" => "Hello", "age" => 21这样的地图。这将用作JSONSerializer.toJSON(arg)

中的参数

像Perl和Python这样的语言非常擅长这种交换。用Java做这个的好方法是什么?

2 个答案:

答案 0 :(得分:1)

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

Gson将直接使用您的对象并将其设为JSON地图。

以此为例:

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

答案 1 :(得分: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);