当前位置: 首页 > 知识库问答 >
问题:

如何将RestAssured Response转换为Java List

刘承悦
2023-03-14
[
{
    "tags": [],
    "id": "aaaaaaaaaaaa",
    "author": "admin",
    "type": "profile",
    "description": "",
    "name": "defaultProfile1",
    "display_name": "Default1"
},
{
    "tags": [],
    "id": "bbbbbbbbbbbbb",
    "author": "admin",
    "type": "profile",
    "description": "test profile",
    "name": "defaultProfile2",
    "display_name": "Default2"
}]

这是我从获取请求中获得的响应,如何将此响应转换为Java列表,以便我可以在列表上执行Stream(.)过滤器。

共有3个答案

范凡
2023-03-14

Gotohttp://www.jsonschema2pojo.org/并将您的JSON转换为Java类,它会自动将JSON更改为JavaPOJO,您可以使用它来获取响应,假设您的POJO类名是PojoResseClass

Gson g = new Gson();
    PojoResponseClass resObj = g.fromJson(response.asString(), PojoResponseClass.class); 
滑弘扬
2023-03-14

您在此处拥有的是一个 JSON 对象数组。

您可以轻松地将其转换为Java类,以便更有效地使用过滤器。

创建一个名为User Object的类,该类表示单个JSON对象,如下所示:

public class UserObject {
    public List<String> tags;
    public String id;
    public String author;
    public String type;
    public String description;
    public String name;
    @JsonProperty(value = "display_name")
    public String displayName;
}

然后,使用JsonPath将JSON转换为这些对象的列表:

    JsonPath path = JsonPath.from(json); //String or File
    List<UserObject> users = Arrays.asList(path.getObject(".", UserObject[].class));

基本上,您将JSON映射到UserObject[]数组,并将其转换为List以进行流处理。

path.getObject中的点表示“从JSON的根开始”

冉俊德
2023-03-14

使用stream()。filter()首先你需要将JSON转换成POJO,然后你可以使用Jackson提供的对象映射器

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
</dependency>

要将JSON转换为POJO,可以在下面使用,也可以命名所需的类:-

public class Author {
public List<String> tags;
public String id;
public String author;
public String type;
public String description;
public String name;
@JsonProperty(value = "display_name")
public String displayName;

// getter - setter 

}

最后,我们必须创建作者列表,以便您可以在那里使用流:-

List<Author> list = Arrays.asList(mapper.readValue(json, Author[].class));

代替json,您可以输入从GET api获得的响应。现在您已经从JSON创建了项目列表。所以你现在可以使用流了。

 类似资料:
  • 问题内容: 我在mySQL 5.1中有一个数据类型的日期列。如何将其转换为DATE? 这是我到目前为止所拥有的- 得到这个 错误-#1064-您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册以获取正确的语法,以在’FROM 7 FOR 4附近使用) 请帮忙。 问题答案: 您可以使用MySQL的功能 尽管我怀疑您使用Unix时间戳会更轻松

  • 问题内容: 有没有一种简单的方法可以避免处理文本编码问题? 问题答案: 您确实无法避免处理文本编码问题,但是Apache Commons中已有一些解决方案: 至: 至: 您只需要选择所需的编码即可。

  • 问题内容: 如何使用Java将Dicom文件(.dcm)转换为jpeg图像?这是我的代码: 我在运行项目时遇到以下错误 请帮助并提前感谢 问题答案: 这是使用dcm4che 2将DICOM转换为JPEG的链接 以下是我的代码,效果很好,我将其与导入一起放置,因此可能用完了。 用于运行它的罐子 dcm4che-imageio-2.0.28.jar dcm4che-image-2.0.28.jar j

  • 问题内容: 我正在使用A 将Json从Web转换为字符串。 这可能很简单,但是我似乎无法将此字符串转换为。 我怎样才能做到这一点? 问题答案: 请参阅文档和示例。

  • 问题内容: 如何在Java中将org.jdom.Document转换为字符串? 问题答案:

  • 问题内容: 我有一个下面的代码- 通过HttpClient连接到Web服务到PHP文件 从SQL查询返回结果 返回格式是一个jArray(一个JSONArray) 当我查看LogCat时,我看到了查询的所有“名称”,每条记录都被打印出来。我只需要将这些结果插入ListView中即可。我怎样才能做到这一点? PS-我没有ArrayAdapter的单独类。这可能是原因吗? 问题答案: 如果您只想显示t

  • 问题内容: 我有将ZipInputSream转换为byte []的代码,但我不知道如何将其转换为inputstream。 问题答案: 这是我解决此问题的方法。现在,我可以将单个文件从ZipInputStream作为InputStream传输到内存。

  • 问题内容: 我正处于开发阶段,在那里我有两个模块,从一个模块我得到的输出为a OutputStream,第二个模块仅接受InputStream。您是否知道如何转换OutputStream为InputStream可以连接这两部分的方式(反之亦然,我是说真的) 谢谢 问题答案: 是您向其中写入数据的地方。如果某个模块公开了,则期望在另一端读取一些内容。 另一方面,暴露出的信息表示您需要侦听此流,并且会