以功能方式将 JSONObject 转换为 Map

Convert JSONObject to Map in a functional way

我有一个像

这样的简单 JSONObject
{"name": "dido"}

现在我想把它转换成地图,所以我写道:

Map<String, String> newMap = StreamSupport
                .stream(Spliterators.spliteratorUnknownSize(obj.keys(), Spliterator.ORDERED), false)
                .collect(Collectors.toMap(Function.identity(), v -> obj.get(v)));

obj 是 JSONObject 的实例。 obj.keys() returns 一个 Iteratorobj.get() returns 该键的值。

为什么会出现错误?我怎样才能以功能方式修复它?

好的,我修好了。 Java 无法推断字符串。

Map<String, String> newMap = StreamSupport
                .stream(Spliterators.spliteratorUnknownSize(obj.keys(), Spliterator.ORDERED), false)
                .collect(Collectors.toMap(Function.identity(), obj::getString));