当前位置: 首页 > 面试题库 >

从JSON生成Java类?

卢和昶
2023-03-14
问题内容

我想要一个从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"));
    }
}

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


问题答案:

尝试:

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

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

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

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

希望这可以帮助!



 类似资料:
  • 我在纠结用Java生成JasperReport。不考虑数据源,因此所有值都为null,并且不显示子报表。 我从下面粘贴的JSON中创建了带有选项“填充报告时使用报告JSON表达式”的JSONData适配器。从Jasper Studio编译它时,它正在正确创建报告,而尝试从Java编译它会导致空报告(仅显示字段名),根本没有子报告。请帮助解决此问题。 main.jrxml subreport.jrx

  • 问题内容: 我有的: 我正在从pojo生成JSON模式。我的生成架构的代码如下所示: 我通过上面的代码生成了几个模式。其中一个pojos具有内部嵌入式枚举,以限制可能的值,如下所示: 上面的代码应将传递给“星期一”,“星期二”,“星期三”等的JSON数据中可能的String值限制。 当我在有问题的代码上运行模式生成器时,我希望得到类似以下模式的内容: 但是相反,我得到这个: 我在Jackson模式

  • 在我的客户机代码中,我使用json模式来验证json响应(使用ajv)。我正计划使用pact-js生成pacts,以便对提供者运行以进行契约测试。 我希望我的客户机代码在运行时验证期间使用的模式和契约测试在协议验证期间使用的模式有一个真实的来源。是否有一种方法可以从pact文件生成json(或swagger)模式,或者是否有一个库使用pact文件本身来对单个http响应进行运行时验证(而不是仅仅用

  • 我一直在努力寻找一些可以从java中的yang模型生成示例xml/json数据的工具,例如对于xsd,有一些工具可以生成示例xml。 我试过平:1。它是用Python编写的。2.转换后,它给了我yin格式,这是相当于yang规范的xml。例如,对于以下阳代码,如果我使用pyang将其转换为阴: 这就是我得到的- 相反,我想要的是 这样我就可以得到xml,输入详细信息并根据相同的数据进行验证。

  • 问题内容: 我有一个带有“逻辑”类的包(例如CheckAuthenticationDataLogic.java,GetVocabulariesLogic.java)。还有另一个类- ApiService.java用于生成wsdl。ApiService.java充满了这样的方法: 如您所见,它只是一个代理方法…所以我想避免做两次相同的工作,而无需编写ApiService.java就直接从逻辑类生成W

  • 有没有从纯Java代码生成jOOQ类的方法?如果不是,最接近的替代方案是什么?理想情况下,我希望在渐变版本中进行此操作。 我找到了这个答案,它链接到了这篇博文。这篇文章的实质是: 从JPA车型开始 将其转换为DDL脚本(.sql文件,其中包含语句) 创建一个新的HSQLDB文件,并通过在其上运行DDL脚本用表填充它。将生成的数据库保存到磁盘 从磁盘加载该数据库并在其上运行jOOQ代码生成 使用生成