- for (vector<Description*>::const_iterator desc = descs.begin(); desc != descs.end(); ++desc) {
- if (desc != descs.begin())
+ for (indirect_iterator<vector<Description*>::const_iterator> desc = make_indirect_iterator(descs.begin());
+ desc != make_indirect_iterator(descs.end()); ++desc) {
+ if (desc.base() != descs.begin())
+ s += ',';
+ auto_arrayptr<char> val(toUTF8(desc->getDescription()));
+ auto_ptr_char lang(desc->getLang());
+ s += "\n {\n \"value\": \"";
+ json_safe(s, val.get());
+ s += "\",\n \"lang\": \"";
+ s += lang.get();
+ s += "\"\n }";
+ }
+ s += "\n ]";
+ }
+
+ const vector<Keywords*>& keywords = info->getKeywordss();
+ if (!keywords.empty()) {
+ s += ",\n \"Keywords\": [";
+ for (indirect_iterator<vector<Keywords*>::const_iterator> words = make_indirect_iterator(keywords.begin());
+ words != make_indirect_iterator(keywords.end()); ++words) {
+ if (words.base() != keywords.begin())