如果 java 中 JSON 格式的值列表中有值,我如何检查 return

How can i check and return if there is value in a list with values in JSON format in java

我想看看我的列表中是否有 live67 参数,我看过其他关于如何查看列表中是否有值的帖子,但是我的列表中有 JSON 格式的值,它是不适合我。之后我想 return 3da2f0db339742f257ecbe737855cd6e -> test67 的值。

我试试:

streamService.getAllStreams().contains("test67")

我的清单:

[
    {
        "key": "3da2f0db339742f257ecbe737855cd6e",
        "streamName": "test67"
    },
    {
        "key": "35ad38ffb46c2ba97306ca931e003481",
        "streamName": "test68"
    }
]

在 streamDao 中 class:

public List<Stream> selectAllStreams();

在 StreamService 中:

public List<Stream> getAllStreams(){
        return streamDao.selectAllStreams();
    }

在 StreamController 中:

@GetMapping("/getList")
public List<Stream> getAllStreams(){
    if(streamService.getAllStreams().contains("test67")){
    return streamService.getAllStreams();
    }
    else{
        return null;
    }
}

总是得到 null

这是我的直播class:

public class Stream {

    String key;
    String streamName;

    public Stream(String streamName, String key){

        this.streamName = streamName;
        this.key = key;
    }

    public String getKey() {
        return key;
    }

    public String getStreamName() {
        return streamName;
    }

}

查看 java 流 api

public List<Stream> getAllStreams(){
    var optionalStream = streamService.getAllStreams().stream()
       .filter(str -> str.getStreamName().equals("test67")).findFirst();

    if (optionalStream.isPresent()) {
         return streamDao.selectAllStreams();
         // return optionalStream.get().getKey(); To return the Key value of stream test67
    }
    return null;
}

解决这个问题的最快方法,请覆盖toString()方法。

public class Stream {

    String key;
    String streamName;

    public Stream(String streamName, String key){

        this.streamName = streamName;
        this.key = key;
    }

    public String getKey() {
        return key;
    }

    public String getStreamName() {
        return streamName;
    }

/// override toString()
    @Override
    public String toString() {
        return getStreamName();
    }

}

事实上,Object.toString()用于验证所有其他外部库中的对象类。
因此,返回 toString() 的唯一值及其中对象的所有属性 - 这是常规方式。

但在你的情况下,这是最快的方法。

或者您需要实施 List.contains() 的替代方法。