这是我第一次使用POJO和Lombok,并使用放心的复杂JSON。
我决定使用这种方法,因为JSON包含许多字段。。
示例JSON
{"records":[{"key":"1563106","value":{"ACTION":"A"}}]}
“value”对象包含大约50个字段。
我使用POJO创建了3个类
public class TransactionFields{
private List<RecordsItem> records;}
public class RecordsItem {
private Object value;
private String key;}
public class Value{
private String ACTION;}
通过向其中的每一个添加注释
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
然后我尝试使用Rest保证发送一个POST请求,并这样做:
>
创建一个值对象并添加一个值(我将在这里重复更多字段)
Value value = Value.builder()
.ACTION("A")
.build();
RecordsItem records = RecordsItem.builder()
.key("1563106")
.value(value)
.build();
然后我发送一个POST请求
given()
.contentType("application/vnd.kafka.json.v2+json")
.body(records).
when().post("V02")
.then().log().all().statusCode(200);
结果,我得到了错误
"error_code": 422,
"message": "Unrecognized field: value"
问题就从这里开始。我不知道我做错了什么。也是最重要的问题。我是否正确使用构建模式?传递给POST()的对象是否正确?
请帮我弄清楚。简单的JSON示例没有问题,但我没有发现包含对象数组的JSON示例。
我明白我的错误是什么。。。
在这个实现中,我需要在RecordsItem类中将value对象的类型更改为value。
public class RecordsItem {
private Value value;
private String key;
并创建另一个TransactionFields类型的对象
TransactionFields transactionFields = TransactionFields.builder()
.records(Arrays.asList(records))
.build();
然后使用post请求主体中的transactionFields变量
.body(transactionFields)
假设我得到了以下模型: 现在我想验证我的RESTendpoint是否正常工作(只需要必填字段),所以我想执行以下2个请求并检查它们是否导致200: 和: 对于第一个,代码很简单: 但第二个开始有点糟糕了。如果我不为提供值,默认情况下它将为空,这就是通过REST(第一个TC)发送的内容。但现在我不想发送这个字段。换句话说:
服务器没有看到我的JSON参数。我用邮差检查服务器,一切正常。
我从新的谷歌通知服务Firebase Cloud Messaging开始。我能够从Firebase用户控制台向Android设备发送通知以进行测试。 我正在努力解决的问题是,我无法通过控制台发送复杂的结构化数据 是否有任何方法可以使用Firebase控制台发送具有嵌套属性的通知?
问题内容: 我试图替换在终端中运行的Netcat命令,该命令将重置服务器上的某些数据。netcat命令如下所示: 我一直试图在Java中实现它,因为我希望能够从正在开发的应用程序中调用此命令。我遇到了问题,但命令从未在服务器上执行。 这是我的Java代码: 代码还挂在应读取的while循环上,我不知道为什么。我一直在使用Wireshark捕获数据包,并且输出的数据看起来是相同的: 也许其余的包装袋
我正在尝试将一个复杂的对象从服务器传递到客户端。我的客户端代码如下所示: 而类是: 在服务器上,我使用: 但不管用。如果我从 (“newsearch”上的
我正在尝试使用Retrofit2和静态编程语言发送一个复杂对象作为我请求的参数。该对象的结构如下: 列表字段的数量是不同的(可以是2个列表,也可以是10个)以及每个列表中的项目数量。我正在使用以下代码来实现这一点,之前用适当的值填充了我的Map: 由于某种原因,这种方法无法正常工作,服务器只是忽略了我的参数。我还尝试将它们作为string/ject发送,但服务器似乎只接受FormUrlEncode