我试图提取"first_name"并"last_name"从信息的长字符串看起来像这样:
{
"123123123": {
"id": "12321312****",
"email": "***************",
"first_name": "Marcus",
"gender": "male",
"last_name": "Bengtsson",
"link": "https://www.facebook.com/app_scoped_user_id/123123123/",
"locale": "en_EN",
"middle_name": "Peter",
"name": "Marcus Peter Bengtsson"
}
}
Run Code Online (Sandbox Code Playgroud)
我的方式做到这一点(这可能是可怕的错误和一个非常糟糕的解决方案)是我首先从提取的子串"first_name"来"link"使用此代码:
String subStr = str.substring(str.indexOf("first_name"), str.lastIndexOf("link"));
Run Code Online (Sandbox Code Playgroud)
然后我得到:
first_name":"Marcus","gender":"male","last_name":"Bengtsson","
然后,我做同样的事情,但是从":"以"gender"获得"first_name:
String firstNameOfUser = subStr.substring(subStr.indexOf(":")+2, subStr.lastIndexOf("gender")-3);
Run Code Online (Sandbox Code Playgroud)
然后同样的事情"last_name":
String lastNameOfUser = subStr.substring(subStr.indexOf(""last_name"")+12, subStr.lastIndexOf(",")-1);
Run Code Online (Sandbox Code Playgroud)
最后,我在两个字符串之间添加一个空格:
String nameOfUser = new StringBuilder().append(firstNameOfUser).append(" ").append(lastNameOfUser).toString();
Run Code Online (Sandbox Code Playgroud)
然后我得到:
Marcus Bengtsson
可能有一个更好的方法来做到这一点,但我无法找出如何解决.