добавить последнюю запятую.
Проблема в том, что иногда входные данные не являются правильным json, а также нет уверенности, что запятая всегда должна присутствовать в конце. Мне нужно удалить только повторяющийся объект пары значений ключа из входных данных, остальное будет таким же.
if (maxIndex > 0) {
try {
singleElementTemplate = dao.resolveObjectDataStringSinglePass(tmdtId, sourceTagHandle,
maxIndex);
String jsonText = singleElementTemplate.trim();
if (!jsonText.startsWith("[") && !jsonText.endsWith("]")) {
jsonText = "[" + jsonText + "]";
}
JSONArray jsonArr = new JSONArray(jsonText);
Set seen = new LinkedHashSet();
JSONArray finalJsonArr = new JSONArray();
for (int i = 0; i < jsonArr.length(); i++) {
JSONObject obj = jsonArr.getJSONObject(i);
if (seen.add(obj.toString())) {
finalJsonArr.put(obj);
}
}
StringBuilder formattedResult = new StringBuilder();
for (int i = 0; i < finalJsonArr.length(); i++) {
// Appends formatted JSON (2-space indent)
formattedResult.append(finalJsonArr.getJSONObject(i).toString(2));
if (i < finalJsonArr.length() - 1) {
formattedResult.append(",\n");
}
}
singleElementTemplate = formattedResult.toString().trim();
} catch (JSONException ex1) {
}
} else {}
////
но вывод такой.
{"email" : "ala@ma.kota"},
{"email" : "kot@ma.ale"
Примечание: нельзя использовать регулярное выражение, поскольку json также может содержать вложенные {}.
[*]добавить последнюю запятую. Проблема в том, что иногда входные данные не являются правильным json, а также нет уверенности, что запятая всегда должна присутствовать в конце. Мне нужно удалить только повторяющийся объект пары значений ключа из входных данных, остальное будет таким же.
[/list] Я попробовал этот способ. /// [code]if (maxIndex > 0) { try { singleElementTemplate = dao.resolveObjectDataStringSinglePass(tmdtId, sourceTagHandle, maxIndex);