从java文件生成JSON

时间:2013-10-19 11:32:11

标签: java json reflection annotations documentation-generation

是否存在基于其内容从未编译的java类生成“某些东西”的标准或现有方法?所以基本上是这样的:

@MakeJsonDocumentation
public class ExistingClass{
    private name = "";

    public ExistingClass(String name){
        this.name = name;
    }

    @JsonField
    public String getName(){
        return this.name;
    }

    @JsonField
    public void setName(String name){
        this.name = name;
    }

    @JsonMethod
    public void someMethod(String text){
        System.out.println("someMethod " + text)
    }

    @JsonMethod
    public void otherMethod(){
        System.out.println("otherMethod")
    }
}

这样的事情

{
  "ExistingClass": {
    "Fields": {
      "Name": "String"
    },
    "Methods": {
      "someMethod": {
        "Parameters": {
          "Type": "String",
          "Name": "text"
        },
        "Returns": "Nothing"
      },
      "otherMethod": {
        "Parameters": "Nothing",
        "Returns": {
          "Type": "String"
        }
      }
    }
  }
}

如果没有,是否可以使用编译时注释来执行此操作,因为我想自动生成代,而不必编写解析器,每次我更改某个类的某些东西时都会通过解析器抛出它为了获得最新的数据表。

我在这里很黑暗,我只知道我想要什么,但不知道如何实现它,所以至少一些正确方向的搜索关键词会非常受欢迎:p

2 个答案:

答案 0 :(得分:1)

为了实现您在上面发布的Json,您可以通过:

  • 使用反射提取所有字段名称和方法
  • 使用JSONObject(json解析器/构建器)
  

来自未编译的java类

但是,反射适用于实例(或所有字段/方法必须是静态的)

答案 1 :(得分:0)

这个怎么样?
https://jersey.java.net/documentation/1.17/json.html

这是一篇可能有用的旧文章:Json - Java Object to Json

干杯 .T。