我有一个以下形式的 JSON 数组:
[
[
1232324343,
"A",
"B",
3333,
"E"
],
[
12345424343,
"N",
"M",
3133,
"R"
]
]
Run Code Online (Sandbox Code Playgroud)
我想使用 Jackson 库将父数组的每个元素映射到 POJO。我试过这个:
ABC abc = new ABC();
ObjectMapper mapper = new ObjectMapper();
JsonNode jsonNode = mapper.readTree(data).get("results");
if (jsonNode.isArray()) {
for (JsonNode node : jsonNode) {
String nodeContent = mapper.writeValueAsString(node);
abc = mapper.readValue(nodeContent,ABC.class);
System.out.println("Data: " + abc.getA());
}
}
Run Code Online (Sandbox Code Playgroud)
其中 ABC 是我的 POJO 类,abc 是对象,但出现以下异常:
com.fasterxml.jackson.databind.JsonMappingException:无法反序列化 com.demo.json.model.ABC 的实例
编辑:我的 POJO 看起来像这样:
class ABC{
long time;
String a;
String b;
int …Run Code Online (Sandbox Code Playgroud) final HttpClient httpClient;
final HttpUtils httpUtils;
@Autowired
public SampleConstructor(HttpUtils httpUtils) {
this.httpClient = ApacheHttpSingleton.getHttpClient();
this.httpUtils = httpUtils;
}
Run Code Online (Sandbox Code Playgroud)
所以我让这个类有两个对象,我使用自动装配构造函数初始化它们。在为此类编写 JUnit 测试时,我必须模拟这两个对象。HttpUtils 对象很简单。但是,我在模拟 HttpClient 对象时遇到了麻烦。
@Mock
HttpUtils mockHttpUtils;
@Mock
HttpClient mockHttpClient;
@InjectMocks
SampleConstructor mockService;
Run Code Online (Sandbox Code Playgroud)
上述方法适用于 HttpUtils,但不适用于 HttpClient。有人可以帮助我如何为 HttpClient 注入模拟对象吗?
我正在使用 Vertx 来管理 API。当我访问 API 时,我收到 NoSuchMethodError。错误如下:
io.vertx.ext.web.RoutingContext - 路由器中未处理的异常 java.lang.NoSuchMethodError: 'void io.vertx.ext.web.impl.RoutingContextDecorator.(io.vertx.ext.web.Route, io.vertx.ext .web.impl.RoutingContextInternal)'
任何人都可以帮助解决可能导致此错误的原因吗?