如何从此字符串中获取currentname
?
[{"name":"fra"},{"name":"Ue","changedToAt":1447121046000},
{"name":"Nn","changedToAt":1463698483000},
{"name":"currentname","changedToAt":1473109797000}]
还有像这样的另一个字符串
[{"name":"fra"},{"name":"Ue","changedToAt":1447121046000},
{"name":"currentname","changedToAt":1473109797000}]
甚至是
[{"name":"fra"},{"name":"currentname","changedToAt":1447121046000}]
甚至是
[{"name":"currentname"}]
currentname
是一个变量,有一天"jim"
可能会"max"
另一天{{1}}请帮助
答案 0 :(得分:1)
假设您知道如何解析字符串,最终会得到如下结构:
class NameChange {
private final String name;
private final Date timeOfChange;
}
List<NameChange> nameChanges;
使用Java 8,您可以使用以下命令获取当前名称:
Optional<String> currentName = nameChanges.stream()
.max(Comparator.comparing(NameChange::getTimeOfChange))
.map(NameChange::getName);
它返回Optional
以允许列表中没有名称的可能性。
如果您使用gson进行解析,则更容易:
Gson gson = new Gson();
Arrays.stream(gson.fromJson(input, NameChange[].class))
...
答案 1 :(得分:0)
你可以使用regular expression,像这样的模式
String pattern="\"name\":\"([a-zA-Z]+)\"((,\"changedToAt\":[0-9]+\}\])|(\}\]))";
所需的结果将在group[1]
请在此处查看所有给定样品的示例:
http://fiddle.re/atkvba (只需按下Java按钮)