Java Parse String

时间:2016-04-10 21:06:35

标签: java regex string

我有一个以下格式的字符串:

 {"id":"1263e246711d665a1fc48f09","facebook_username":"","google_username":"814234576543213456788"}

但有时这个字符串看起来像:

{"id":"1263e246711d665a1fc48f09","facebook_username":"109774662140688764736","google_username":""}

如果我不知道子串的索引,我怎样才能提取这些值,因为它们会因不同的情况而改变?

2 个答案:

答案 0 :(得分:3)

看起来像json格式,您应该通过google查看Gson library,它会自动解析该字符串。

你的课应该是这样的

public class Data
{
private String id;

private String facebook_username;

private String google_username;
// getters / setters...
}

然后你可以简单地创建一个从json字符串创建对象的函数:

Data getDataFromJson(String json){
     return (Data) new Gson().fromJson(json, Data.class);
}

答案 1 :(得分:0)

尽管解析为JSON,但这是一个纯粹的基于字符串的解决方案:

String id = str.replaceAll(".*\"id\":\"(.*?)\".*", "$1");

与其他两个类似,将id换成其他字段名称。