我在下面显示了我的代码片段,我试图发送json
obj作为Reuestbody
,我的控制器无法分配请求的值。
{
"Request":
{
"ReferenceNumber" : "ILT06240123201694516287",
"B_Code" : 1,
"B_Code":"888asdad88",
"Request":"11111111111111111"
}
}
@RequestMapping(value="/GetAccountDetails",method = RequestMethod.POST)
public ResponseEntity<AccountListResponse> GetAccountDetails(@RequestBody @Valid CBSAccountRequest cbsAccountReq
,BindingResult result) {
if(result.hasErrors()) {
throw new InvalidException("Not Valid",result);
}
else {
AccountListResponse accountListResponse=new AccountListResponse();
return new ResponseEntity<AccountListResponse>(accountListResponse, HttpStatus.OK);
}
}
public class CBSAccountRequest {
@NotNull
@Size(min=25,max=25,message="Reference number should have 25 characters")
private String ReferenceNumber;
@NotNull
@Digits(integer=1,fraction = 0 )
private int B_Code;
@NotNull
@Size(min=5,max=5, message="Invalid Branch Code")
private String B_Code;
@NotNull
@Size(min=17,max=17 ,message="Invalid Account Number")
private String Request;
//getters and setters
}
我得到异常,因为@Valid
。我经历了很多与此相关的问题,但没有一个对我有用。我预测这个问题可能会因为JSON对象结构而发生。我也尝试了下面的对象也不工作。
{
"ReferenceNumber" : "ILT06240123201694516287",
"B_Code" : 1,
"B_Code":"888asdad88",
"Request":"11111111111111111"
}
还要考虑这一点:在POJO中命名变量的Java约定要求第一个变量用小写。但是,您可以使用@JsonNaming注释来重写它。看看这些线索:https://stackoverflow.com/questions/38935912/requestbody-is-getting-null-values/38939812#38939812
1:@RequestBody正在获取空值,@RequestBody正在获取空值
您还可以阅读:Jackson属性自定义命名策略
这个线程也会有帮助:不区分大小写的JSON到POJO映射,而不改变POJO
问题是你的JSON是无效的
{
"ReferenceNumber" : "ILT06240123201694516287",
"B_Code" : 1,
"B_Code":"888asdad88",
"Request":"11111111111111111"
}
您的请求有效负载中有重复的钥匙B_代码。
以下是您可以做的:
B_code
的名称 B_code
的名称,它与Java命名约定不匹配
@JsonProperty
来更正它
在我看来,您发送的JSON请求具有错误的结构。在JSON中,外部“请求”元素是多余的。尝试发送以下请求:
{
"ReferenceNumber" : "ILT06240123201694516287",
"B_Code" : 1,
"B_Code":"888asdad88",
"Request":"11111111111111111"
}
顺便说一句,作为一个建议。您可以对字段使用java命名约定,并且您仍然可以使用@JsonProperty
注释将B_Code等名称映射到它们:
@JsonProperty("B_Code")
String bCode;
问题内容: 我有一个AJAX请求返回的json对象,而我遇到了一些麻烦,因为它一直在返回。只想知道我是否使用正确: 它们都是有效对象,即使它们都返回。 更新: 返回了JSON对象的示例: 问题答案: 你可以用这样的东西
问题内容: 我有一个网址,返回的是这样的JSON对象: 我想获得价值。那么如何通过PHP检索它呢? 问题答案: $json = file_get_contents(‘url_here’); $obj = json_decode($json); echo $obj->access_token; 为此,需要启用它。可以通过在运行时完成以下操作来实现: 您也可以使用获取网址。要使用卷曲,可以使用中发现的
我有一个名为AnimalsData的文件,它有一个由数组组成的对象。数组由一个对象和另一个数组组成。它看起来像这样: 我的HTML文件如下所示: 我正试图获取的值的类名对象从动画类数组。我一直在使用以下两个stackoverflow页面作为指南: 访问JSON数组中的对象和访问/处理(嵌套)对象、数组或JSON 我有另一个javascript文件,其中包含以下内容: 编辑我将for in循环中的"
我有一个返回JSON对象的URL,如下所示: 我想从URL获取JSON对象,然后获取值。 那么如何通过PHP检索它呢?
问题内容: 这是我要在这里实现的目标: 从数据库获取文件名和ID的列表 在网络路径上搜索这些文件 存储未找到的文件的任何ID 在第二个数据库中搜索该ID 在网络路径上搜索这些文件 列出所有在两个位置均未找到文件的ID。 我遇到的问题是尝试使用我收集的结果中的文件名。 运行代码时,会显示从数据库收集的原始JSON数据,但是当尝试仅列出文件名时,我什么也没得到(甚至没有错误) 关于如何解决此问题并以一
问题内容: 要从内存缓存中获取密钥(使用pylibmc),请执行以下操作: Redis中的相同之处在于: 最后一行对我来说并不正确。Redis似乎只返回字符串。是否有get redis以与放入对象相同的形式返回对象? 问题答案: 区别在于,尽管memcached和Redis仅支持字符串值,但使用序列化您发送的值,只是将它们转换为字符串。 如果要对Redis进行同样的操作,则可以使用自己的功能为您做