mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-08-27 19:17:19 +02:00
JSON
- Tags are now a JSON array: "tags":["one","two"]
This commit is contained in:
parent
2d50d1cbf5
commit
18aa5c5b69
1 changed files with 25 additions and 0 deletions
25
src/Task.cpp
25
src/Task.cpp
|
@ -443,10 +443,13 @@ std::string Task::composeJSON () const
|
|||
if (attributes_written)
|
||||
out << ",";
|
||||
|
||||
// Annotations are simply counted.
|
||||
if (i->second.name ().substr (0, 11) == "annotation_")
|
||||
{
|
||||
++annotation_count;
|
||||
}
|
||||
|
||||
// Date fields are written as ISO 8601.
|
||||
else if (att.type (i->second.name ()) == "date")
|
||||
{
|
||||
Date d (i->second.value ());
|
||||
|
@ -458,6 +461,28 @@ std::string Task::composeJSON () const
|
|||
|
||||
++attributes_written;
|
||||
}
|
||||
|
||||
// Tags are converted to an array.
|
||||
else if (i->second.name () == "tags")
|
||||
{
|
||||
std::vector <std::string> tags;
|
||||
split (tags, i->second.value (), ',');
|
||||
|
||||
out << "\"tags\":[";
|
||||
|
||||
std::vector <std::string>::iterator i;
|
||||
for (i = tags.begin (); i != tags.end (); ++i)
|
||||
{
|
||||
if (i != tags.begin ())
|
||||
out << ",";
|
||||
|
||||
out << "\"" << *i << "\"";
|
||||
}
|
||||
|
||||
out << "]";
|
||||
}
|
||||
|
||||
// Everything else is a quoted value.
|
||||
else
|
||||
{
|
||||
out << "\""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue