如何在java中从未知参数和未知数量的参数构建Json?
我有不同的命令:如何在java中从未知参数和未知数量的参数构建Json?,java,json,reflection,jersey,jackson,Java,Json,Reflection,Jersey,Jackson,我有不同的命令: Command1(String name, Integer age) extends BasicCommand Command2(String address, Info cityInfo) extends BasicCommandWithException// Info is a class containing 2 fields : city name and city size Command3(CountryInfo countryInfo, String conti
Command1(String name, Integer age) extends BasicCommand
Command2(String address, Info cityInfo) extends BasicCommandWithException// Info is a class containing 2 fields : city name and city size
Command3(CountryInfo countryInfo, String continent) extends BasicCommandWithCityNameAndException
[BasicCommandWithCityNameAndException extends BasicCommandWithException extends BasicCommand]
我不能为扩展添加新的抽象类,所以我想到了一个包含命令和参数的包装器。我希望能够将传递的参数转换为json,我将有如下内容:
Wrapper c = new Wrapper(Command1 ("hello", 55))
cityInfo cit = new cityInfo("city", 1000)
Wrapper b = new Wrapper(Command2("myAddress", cit))
String x = c.getJsonFromParams
will print:
{
"name" : "hello",
"age" : 55
}
String y = b.getJsonFromParams
will print:
{
"address" : "myAddress",
"cityInfo": {
"cityName" : "city",
"citySize" : 1000
}
}
不知道从哪里开始。
我不知道如何传递这些参数,因为您可以更改这些参数(类型、数量等)
您能提出建议吗?有什么理由不使用流行的JSON编组库吗?Jackson:
String json=objectMapper.writeValueAsString(command)
但“command”不需要是类吗?例如,如果我传递命令(x,y,z),我将不得不创建类A{x,y,z},如果我传递命令(r,t),我将不得不创建类B{r,t}-我如何在运行时创建这些类?我不知道哪些命令将被传递不,“command”将是一个对象而不是一个类<代码>命令=新命令1(“Ed”,21);字符串json=objectMapper.writeValueAsString(命令)NB您的示例似乎缺少new
关键字。和分号Wrapper c=newwrapper(newcommand1(“hello”,55))
刚刚修复了它。谢谢-我现在就试试:)