【问题标题】:Generating JSON from java file从java文件生成JSON
【发布时间】:2013-10-28 05:42:12
【问题描述】:

是否有标准或现有的方法可以根据其内容从未编译的 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

【问题讨论】:

标签: java json reflection annotations documentation-generation


【解决方案1】:

要实现您在上面发布的 Json,您可以:

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

来自未编译的 java 类

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

【讨论】:

  • 我想我真的必须使用 google-reflections 之类的东西才能获得具有特定注释的所有类或在同一个包中?
【解决方案2】:

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

这里有一篇较旧的帖子也可能有所帮助:Json - Java Object to Json

干杯 .t.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多