JSON到java中的对象?

时间:2010-08-20 15:58:18

标签: java json

有谁知道是否有能力为JSON数据生成对象?我知道有通用的JSON对象库,但我正在寻找更具体的 - 类似于jaxb如何将SOAP定义或XSD转换为对象模型。我知道需要某种JSON定义文件(我不知道这个概念是否存在于JSON中),但我觉得这样会更有益。认为:

通用案例:

genericJsonObect.get("name");

具体案例:

specificJsonObject.getName();

5 个答案:

答案 0 :(得分:3)

Jackson和XStream能够将json映射到POJO。

答案 1 :(得分:3)

您是否希望为您生成.java源文件?或者将现有的java bean映射到JSON对象?

如果是前者,那么没有这样的库(我知道),如果后者,Google GSON正是你所需要的。

来自样本:

class BagOfPrimitives {
    public int value1 = 1;
    private String value2 = "abc";
    private transient int value3 = 3;
    BagOfPrimitives() {
    // no-args constructor
    }
}

(序列化)

BagOfPrimitives obj = new BagOfPrimitives();
Gson gson = new Gson();
String json = gson.toJson(obj); 
System.out.println( json );

打印

{"value1":1,"value2":"abc"}

(反序列化)

BagOfPrimitives obj2 = gson.fromJson(json, BagOfPrimitives.class);   
System.out.println( obj2.value1 ) ; // value1 is 1

答案 2 :(得分:1)

我认为Jackson数据映射器可以满足您的需求。它可以将真正的Java对象序列化/反序列化为Json树。

但其他API也应该有效:

  • 索霍
  • FlexJSON
  • GSON

答案 3 :(得分:0)

我不熟悉这样的代码生成项目,虽然我相信很多Java JSON库项目都会对这样的事情感兴趣。主要问题是JSON有一个很好的Schema语言可以生成代码; JSON Schema仅适用于验证。

但是:您可以考虑的一种可能性就是使用JAXB生成bean,然后使用Jackson来使用这些bean。它支持JAXB注释,因此您可以使用JSON和生成的bean。

答案 4 :(得分:0)

我发现这个网站非常有用。

http://jsongen.byingtondesign.com/并在我们的项目中使用过它。