java - 返回 String[] 或 List<String> 的 ReSTLet 调用使用 Jackson 返回 null

标签 java json jackson restlet

我正在使用 ReSTLet 库和 Jackson 发送 JSON 数据,但我无法获取以下内容来返回列表的 json 对象,我从中得到 null 并且没有错误:

public class Info extends ServerResource {

    /**
     * @param args
     * @throws Exception 
     */
    public static void main(String[] args) throws Exception {
        Server server = new Server(Protocol.HTTP,8080,Info.class);
        System.out.println("Starting: " + args[0]);
      server.start();
      System.out.println("Start returned: " + args[1]);
      ObjectMapper mapper = new ObjectMapper();
      List<String> user = new ArrayList<String>();
      user.add("SDFE");
      user.add("XXYY");
      Object o = "user";
      mapper.writeValue(new File("/tmp/user.json"), o);
    }

    /*@Get("json")
    public String isAwake()
    {
        System.out.println("Getting true");
        return "true";
    }*/

    @Get("json")
   //   public List los()
   //public String[] los()
   public String los()
    {   
        ArrayList l = new ArrayList<String>();
      String[] sl = new String[2];

      sl[0] = "FDSSE";
      sl[1] = "ODSEF";

        l.add("ESDF");
        l.add("JJKE");
          //return l;
      return sl.toString();
          // return sl[0];
    }

正如您可能从评论中看出的那样,我使用了多种方法来完成此操作,其中返回了 List、Object 和 String[]。我将这部分的列表转换为对象。

如果我返回一个纯字符串,它会被编码并发送。我无法让 List 发回 JSON 数组

最佳答案

我也有类似的问题。如果我理解正确的话, jackson 需要一个类来序列化,并且在提交列表时遇到了麻烦。所以我通过为列表创建一个类来解决这个问题,基本上包装它:

public class MyObject {
    //object details with setters and getters
}

然后是包含这些列表的第二个类:

public class MyObjectList {
    private List<MyObject> myObjectList;
    //and appropriate setter and getter
}

然后我的 URL 调用是:

@GET
public MyObjectList getMyObject() {
    //method defined 
}

希望有帮助!如果有更好的方法,我会很想亲自看看!

关于java - 返回 String[] 或 List<String> 的 ReSTLet 调用使用 Jackson 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20482912/

相关文章:

java - Jackson用空字符串而不是对象反序列化JSON字符串

spring-boot - Spring 与 Jackson ObjectMapper 和 Java 8 Time 集成 (JSR-310)

java - 按价格属性对数组列表中的对象进行排序

java - 在 Activity 之间传递变量值

json - Gatsbyjs 中的 GraphQL - 仅返回包含特定字段的数据

java - Jackson(JSON 库)可以自动生成用于反序列化的 POJO 吗?

java - 在java Android中为自定义Dialog创建一个通用类

Java 父类(super class)字段在子类中初始化

json - 使用 Swift 从 JSON 中提取数组

java - Jackson 忽略@Ignore 注释