一尘不染

从JSON生成Java类?

java

我想要一个从JSON生成Java源文件的实用程序。例如我们有

{
  "firstName": "John",  
  "lastName": "Smith",  
  "address": {  
    "streetAddress": "21 2nd Street",  
     "city": "New York"
  }
}

我们将此传递给实用程序,并希望它生成如下内容:

class Address  {
    JSONObject mInternalJSONObject;

    Address (JSONObject json){
        mInternalJSONObject = json;
    }

    String  getStreetAddress () {
        return mInternalJSONObject.getString("streetAddress");
    }

    String  getCity (){
        return mInternalJSONObject.getString("city");
    }
}

class Person {        
    JSONObject mInternalJSONObject;

    Person (JSONObject json){
        mInternalJSONObject = json;
    }

    String  getFirstName () {
        return mInternalJSONObject.getString("firstName");
    }

    String  getLastName (){
        return mInternalJSONObject.getString("lastName");
    }

    Address getAddress (){
        return Address(mInternalJSONObject.getString("address"));
    }
}

编写起来并不难,但是我敢肯定有人已经做到了。


阅读 826

收藏
2020-03-08

共1个答案

一尘不染

尝试:

http://www.jsonschema2pojo.org
Orsol,我确定你在这里还没有等待解决方案,但是为了下一个找到此线程的人,我想我会添加一些更多信息。

自从09年12月问这个问题以来发生了两件事:

该JSON模式规范已经转移了很多。它仍在草稿中(尚未定稿),但即将完成,现在是指定结构规则的可行工具

我最近启动了一个新的开源项目,专门用于解决你的问题:jsonschema2pojo。jsonschema2pojo工具采用json模式文档,并生成DTO样式的Java类(以.java源文件的形式)。该项目尚未成熟,但已经涵盖了json模式最有用的部分。我正在寻找用户的更多反馈意见,以帮助推动开发。现在,你可以从命令行或作为Maven插件使用该工具。

希望这可以帮助!

2020-03-08