我有一个长字符串,它是json文件的内容。此字符串中的某处包含以下内容:“ totalWinAmount”:100
要查找并返回此值,我目前正在这样做:
int totalWinAmountIndex = line.lastIndexOf("totalWinAmount");
String resultTotalWinAmount = line.substring(totalWinAmountIndex + 16, totalWinAmountIndex + 19);
这可行,resultTotalWinAmount正确设置为100,但是我很好奇这是否是这种情况的最佳实践,无论这实际上是糟糕的编码还是有更好的方法?
答案 0 :(得分:1)
您可以使用RegExp:"\s*totalWinAmount\s*"\s*:\s*(?<totalWinAmount>\d*)
这是获取几个值的最简单方法(出于这个原因,我认为使用json转换器是开销)。但是,如果您想查找更多值,那么一定要使用json转换器(例如Jackson)。
答案 1 :(得分:0)
您也可以尝试使用正则表达式提取值。 这样的事情应该起作用:
resultTotalWinAmount = str.split(".*\"totalWinAmount\"\\s*:\\s*")[1].split("\\D+")[0];
有点混乱,但是无需其他库即可使用。
但是,我同意Sun的看法。为了正确分析json,您应该始终使用Jackson或GSON之类的东西。