我有一个以下格式的字符串:
{"id":"1263e246711d665a1fc48f09","facebook_username":"","google_username":"814234576543213456788"}
但有时这个字符串看起来像:
{"id":"1263e246711d665a1fc48f09","facebook_username":"109774662140688764736","google_username":""}
如果我不知道子串的索引,我怎样才能提取这些值,因为它们会因不同的情况而改变?
答案 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
换成其他字段名称。