首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从JSON生成Java类?

从JSON生成Java类?
EN

Stack Overflow用户
提问于 2009-12-24 16:37:08
回答 10查看 353.2K关注 0票数 235

在Java Maven项目中,如何从JSON生成java源文件?例如,我们有

代码语言:javascript
复制
{
  "firstName": "John",  
  "lastName": "Smith",  
  "address": {  
    "streetAddress": "21 2nd Street",  
     "city": "New York"
  }
}

当我们运行mvn generate-sources时,我们希望它生成如下所示的内容:

代码语言:javascript
复制
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"));
    }
}

作为一名Java开发人员,为了实现这一点,我需要在pom.xml中编写哪些XML行?

EN

回答 10

Stack Overflow用户

发布于 2015-02-07 10:23:07

这是一个online tool,它将接受JSON,包括嵌套对象或嵌套对象数组,并生成带有Jackson注释的Java源。

票数 18
EN

Stack Overflow用户

发布于 2012-10-18 16:16:51

用最近的项目回答这个老问题;-)。

目前最好的解决方案可能是JsonSchema2Pojo

它通过很少使用的Json Schema来完成这项工作,但也使用普通的Json。它提供了Ant和Maven插件,online test application可以让你对这个工具有一个初步的了解。我放置了一个Json Tweet并生成了所有的包含类(Tweet、User、Location等)。

我们将在Agorava项目中使用它来生成社交媒体映射,并跟踪其应用程序接口中的contant演变。

票数 7
EN

Stack Overflow用户

发布于 2009-12-25 17:23:21

感谢所有试图提供帮助的人。

对我来说,这个脚本很有帮助。它只处理平面JSON,不关心类型,但自动化了一些例程

代码语言:javascript
复制
  String str = 
        "{"
            + "'title': 'Computing and Information systems',"
            + "'id' : 1,"
            + "'children' : 'true',"
            + "'groups' : [{"
                + "'title' : 'Level one CIS',"
                + "'id' : 2,"
                + "'children' : 'true',"
                + "'groups' : [{"
                    + "'title' : 'Intro To Computing and Internet',"
                    + "'id' : 3,"
                    + "'children': 'false',"
                    + "'groups':[]"
                + "}]" 
            + "}]"
        + "}";



    JSONObject json = new JSONObject(str);
    Iterator<String> iterator =  json.keys();

    System.out.println("Fields:");
    while (iterator.hasNext() ){
       System.out.println(String.format("public String %s;", iterator.next()));
    }

    System.out.println("public void Parse (String str){");
    System.out.println("JSONObject json = new JSONObject(str);");

    iterator  = json.keys();
    while (iterator.hasNext() ){
       String key = iterator.next();
       System.out.println(String.format("this.%s = json.getString(\"%s\");",key,key ));

    System.out.println("}");
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1957406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档