我有类似下面的类:如何发布jsonstring如REST类型的请求邮递员
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.springframework.util.StringUtils;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;
@Data
public class MyTestClass {
@JsonProperty("first")
private List<String> first = new ArrayList<>();
@JsonProperty("second")
private List<String> second = new ArrayList<>();
@JsonProperty("third")
private List<String> third = new ArrayList<>();
public static MyTestClass emptyFilter() {
return new MyTestClass();
}
@SuppressWarnings("unused") //JSR311
@Nonnull
public static MyTestClass fromString(@Nullable String jsonString) {
if (StringUtils.isEmpty(jsonString)){
return emptyFilter();
}
return JsonUtils.fromJSONString(jsonString, MyTestClass.class, false);
}
}
我的问题是关于问题的REST调用Web服务的输入。我的请求必须有一个filter
参数,这个参数应该是指这个类。所以,我拿什么作为过滤参数是这样的:
{"MyTestClass":{"first":[],"second":[],"third":[]}}
但我总是得到这样的错误:
Failed to convert value of type 'java.lang.String' to required type 'MyTestClass'
我新的Spring框架和我的问题可能是愚蠢的:
我知道过滤器参数应该是
jsonObject
,其中包括三个JsonArray
s。jsonObject
内的主要参数名称应该是什么,其中包括JsonArray
s。正如你所看到的,我使用了类名。那是对的吗?如果我已经从stackoverflow
的其他问题中正确地理解了它,那么当我使用基于Spring
编写的类时,应该使用这个。如果不正确,我该如何找到应该调用的内容?我可以简单地通过查看课程来看到
jsonArray
的名称,因为它们是课程的变量。但是包含所有这些数组的jsonObject
的名称怎么样?从这个类看来,类似乎还必须接受空字符串作为过滤器。但我也尝试过,并且不起作用。我应该在哪里寻找问题?
我还要提到的是我的工作是在一家公司,这是一个非常大的项目,该项目最近已被转换为Spring框架的一小部分,我们正在测试,如果一切工作了。
什么库是JsonUtils。我没有看到它的导入 –