gpt4 book ai didi

java - com.fasterxml.jackson.databind.node.ObjectNode 无法转换为 org.codehaus.jackson.node.ObjectNode

转载 作者:行者123 更新时间:2023-12-01 09:17:23 32 4
gpt4 key购买 nike

我正在使用 play2.2.1,现在遇到错误:

com.fasterxml.jackson.databind.node.ObjectNode 无法转换为 org.codehaus.jackson.node.ObjectNode

代码是这样的:

package controllers;

import play.*;
import play.data.*;
import play.mvc.*;
import play.db.ebean.*;

import views.html.*;

import java.util.*;
import models.*;
import com.avaje.ebean.ExpressionList;

import play.data.validation.Constraints.Required;

import scala.*;

import play.libs.Json;
import org.codehaus.jackson.node.ObjectNode;
public class Application extends Controller {

//create JSON data
public static Result ajax() {
String input = request().body().asFormUrlEncoded().get("input")[0];
ObjectNode result = Json.newObject();
if(input == null) {
result.put("status", "BAD");
result.put("message", "Can't get sending data...");
return badRequest(result);
} else {
result.put("status", "OK");
result.put("message", input);
return ok(result);
}
}

错误发生在ObjectNode result = Json.newObject();处。不过,我通过 [][1] https://playframework.com/documentation/2.0/api/java/play/libs/Json.html 确认静态方法 newObject() 的返回值为 org.codehaus.jackson.node.ObjectNode

API 引用的版本是 2.0,而不是 2.2,所以这里存在不同的东西?深刻的是,当我导入 com.fasterxml.jackson.databind.node.ObjectNode 并删除 import org.codehaus.jackson.node.ObjectNode; 时,应用程序运行良好。谁能解释这种行为?为什么错误消息与 API 引用相矛盾?

最佳答案

我假设一个项目中混合了两个版本的 Jackson 库。旧版本使用 org.codehaus.jackson 命名空间,而新版本使用 com.fasterxml.jackson,因为它们是从 Codehaus 迁移的。当我使用较新版本的 Jackson 时,我遇到了同样的问题,并且重构无法正常工作。这些类不兼容,因此您必须一致地使用 com.fasterxml.jackson

关于java - com.fasterxml.jackson.databind.node.ObjectNode 无法转换为 org.codehaus.jackson.node.ObjectNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40445567/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com