我有一个requestbody作为,
{
"first": "0",
"second": "3",
"third": {
"Types": ["AAA"],
"Name": "XXXX"
}
}
我无法使用spring将此映射到请求映射。我试过用下面的,但没有用。
公共类请求映射{
private Integer skip;
private Integer take;
private Map<String, String[]> keywords;
public Integer getSkip() {
return skip;
}
public void setSkip(Integer skip) {
this.skip = skip;
}
public Integer getTake() {
return take;
}
public void setTake(Integer take) {
this.take = take;
}
public Map<String, String[]> getKeywords() {
return keywords;
}
public void setKeywords(Keywords keywords) {
this.keywords = (Map<String, String[]>) keywords;
}
}
如何映射请求正文?
编辑Json中的大小写敏感键。
在映射中将String[]
更改为Object
,因为关键字
可以有一个数组或一个String而不是只有数组,例如name
对有一个String值(并且不能映射为数组)并且类型
有一个数组值。所以它会是:
private Map<String, Object> keywords;
否则,最好的选择是创建一个对象,使用json属性进行注释,因此您的属性以大写开头:
class Keywords {
@JsonProperty("Types")
List<String> types;
@JsonProperty("Name")
String name;
}
然后用它代替地图。
如果您能够更改json,您的关键字对值可以是一个数组:
"keywords": {
"types": ["P-A01"],
"name": ["XXXX"]
}
然后,您将能够像您的示例一样使用关键字地图:
Map<String, String[]> keywords;
当然,您应该知道keyname
将有一个第1个数组。
这应该是正确的型号。
public class jsonObject
{
private Keywords keywords;
private String take;
private String skip;
public Keywords getKeywords ()
{
return keywords;
}
public void setKeywords (Keywords keywords)
{
this.keywords = keywords;
}
public String getTake ()
{
return take;
}
public void setTake (String take)
{
this.take = take;
}
public String getSkip ()
{
return skip;
}
public void setSkip (String skip)
{
this.skip = skip;
}
@Override
public String toString()
{
return "ClassPojo [keywords = "+keywords+", take = "+take+", skip = "+skip+"]";
}
}
//keywords class
public class Keywords
{
private String name;
private String[] types;
public String getName ()
{
return name;
}
public void setName (String name)
{
this.name = name;
}
public String[] getTypes ()
{
return types;
}
public void setTypes (String[] types)
{
this.types = types;
}
@Override
public String toString()
{
return "ClassPojo [name = "+name+", types = "+types+"]";
}
}
我正在构建一个RESTAPI,它接受用户以以下JSON格式输入的内容。细节是嵌套的JSON对象,其键值是动态的,其关联的数据类型也是动态的。如下图所示,颜色是字符串列表,ram是整数列表,值可以是字符串、布尔值和整数类型。考虑到具体情况,如何构建请求POJO类将请求JSON转换为请求对象在键、值及其数据类型方面是动态的。在下面的JSON中,细节可以有0。。n键值,其值数据类型可以是字符串列表、整数
我试图动态解析一些JSON到一个Map 但是当我尝试使用一些更复杂的JSON和嵌套信息时失败了。我试图从json解析示例数据。组织 我得到以下错误 异常在线程"main"com.fasterxml.jackson.databind.JsonMapping异常:不能反序列化实例的java.lang.字符串START_OBJECT令牌 有没有办法将复杂的JSON数据解析成映射?
我用的是Protobuf 3。从文档来看,似乎无法定义嵌套贴图: 我正在尝试创建一种消息类型来表示期权链的定价信息(出价和要价)。对于那些不熟悉这些金融工具的人,基本上我有一套“到期日期(YYYYMMDD)”。在每个过期日期中,我都有一组“strikes(float number;如果需要,可以用字符串表示,我同意)”。在每次行使中,我有两个期权,一个“看跌”和一个“看涨”(这被称为期权的“右”)
我尝试使用MapStruct编写映射器类,如下所示: 目前它显示了“未知属性”“customer.customerid”和“usertypes.usertype.userid”等错误。有人能帮我用MapStruct映射所有这些元素吗? 问题2:我们如何绘制跟踪图?1)customerId usertypes->user->userid 2)pdtPrice offers->OffersType->
我用下面的方法尝试了嵌套映射。 我在声明“root_cause”时出错:[{“type”:“mapper_parsing_exception”,“reason”:“root映射定义有不支持的参数:[type:nested]。” 感谢您的帮助。
很抱歉再次问这种问题,但我无法通过查看其他线程和Spring doc来解决我的问题。 我正在使用maven的3.1.0.RELEASE,并尝试使用注释和java配置。 以下是我的web.xml: 这是我的档案web-application-config.xml. 我有两个类。第一个配置视图解析器 第二个定义我的控制器: 根据我的配置,我想一切都应该指向我的home()函数。然而,事实并非如此,以下