Tôi biết bài đăng này đến từ năm 2010, thực tế là tôi vừa tìm kiếm nó, có thể có người khác vẫn cần đến nó. Vì vậy, đây là chức năng tôi tạo ra cho nhu cầu của tôi.
về cơ bản, nó sẽ thay thế tất cả các từ khóa có giá trị từ một json (hoặc mô hình, hoặc bất kỳ nguồn dữ liệu)
làm thế nào để sử dụng:
JsonObject jsonROw = some_json_object;
String words = "this is an example. please replace these keywords [id], [name], [address] from database";
String newWords = preg_match_all_in_bracket(words, jsonRow);
tôi sử dụng mã này trong bộ chuyển đổi chia sẻ của tôi.
public static String preg_match_all_in_bracket(String logos, JSONObject row) {
String startString="\\[", endString="\\]";
return preg_match_all_in_bracket(logos, row, startString, endString);
}
public static String preg_match_all_in_bracket(String logos, JSONObject row, String startString, String endString) {
String newLogos = logos, withBracket, noBracket, newValue="";
try {
Pattern p = Pattern.compile(startString + "(\\w*)" + endString);
Matcher m = p.matcher(logos);
while(m.find()) {
if(m.groupCount() == 1) {
noBracket = m.group(1);
if(row.has(noBracket)) {
newValue = ifEmptyOrNullDefault(row.getString(noBracket), "");
}
if(isEmptyOrNull(newValue)) {
//no need to replace
} else {
withBracket = startString + noBracket + endString;
newLogos = newLogos.replaceAll(withBracket, newValue);
}
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return newLogos;
}
Tôi cũng mới sử dụng Java/Android, vui lòng sửa nếu bạn cho rằng đây là triển khai không tốt hoặc điều gì đó. tks
Nguồn
2017-09-08 03:47:31