gpt4 book ai didi

java - 获取 JSON 字符串的值并获取值

转载 作者:行者123 更新时间:2023-12-01 12:28:20 25 4
gpt4 key购买 nike

我得到了这样的 JSON 字符串:{Numbers: [10,20,30]},我想解析 Numbers 的值,并将其另存为一个列表:

[10,20,30]

Guava 中有什么东西可以做到这一点吗?不能使用除该库或内置库之外的任何其他第三方库。 (在 java 7 上)。

最佳答案

不,但 gson 可以。声明一个类,例如

class C {
private List<Integer> Numbers;
}

通话

new Gson().fromJson(s, C.class);

你就完成了。

但是,这不太好。该列表应该称为小写数字,也许它应该是一个数组。对于前者,请查看 FieldNamingStrategy据我所知,这封信应该可以简单地声明它,就像int[]数字一样。

更新

抱歉没有正确阅读问题。这个简单的事情可以用正则表达式和 Guava 在几行中处理:

private static final Pattern PATTERN =
Pattern.compile("\\{Numbers:\\[([\\d, ]+)\\]\\}");

List<Integer> parse(String input) {
input = CharMatcher.WHITESPACE.removeFrom(input);
final Matcher matcher = PATTERN.matcher(input);
checkArgument(matcher.matches());
input = matcher.group(1);
final Iterable<String> split = Splitter.on(',').split(input);
final List<Integer> result = Lists.newArrayList();
for (final String s : split) result.add(Integer.parseInt(s));
return result;
}

它确实有效,但你真的不应该尝试避免使用库,以防它变得更复杂。 JSON 相当灵活,手动处理它需要编写适当的解析器并处理对象创建等,这意味着重新实现 Gson 或其他库。

关于java - 获取 JSON 字符串的值并获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26150062/

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