【发布时间】:2015-08-07 18:17:09
【问题描述】:
我正在尝试从如下所示的一长串信息中提取"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"
}
}
我这样做的方式(这可能是非常错误且非常糟糕的解决方案)是我首先使用以下代码从"first_name" 提取子字符串到"link":
String subStr = str.substring(str.indexOf("first_name"), str.lastIndexOf("link"));
然后我得到:
first_name":"Marcus","gender":"male","last_name":"Bengtsson","
然后我做同样的事情,但从":" 到"gender" 得到"first_name:
String firstNameOfUser = subStr.substring(subStr.indexOf(":")+2, subStr.lastIndexOf("gender")-3);
那么"last_name"也是一样的:
String lastNameOfUser = subStr.substring(subStr.indexOf(""last_name"")+12, subStr.lastIndexOf(",")-1);
最后我在两个字符串之间添加一个空格:
String nameOfUser = new StringBuilder().append(firstNameOfUser).append(" ").append(lastNameOfUser).toString();
然后我得到:
Marcus Bengtsson
可能有更好的方法可以做到这一点,但我无法弄清楚如何。
【问题讨论】:
-
使用 JSON 解析器,例如 GSON 或 json-simple
-
看起来像一个 json 字符串。所以你应该使用json解析器
标签: java append substring indexof lastindexof