С некоторым опозданием, но моя библиотека jsonj была разработана для этого варианта использования.
https://github.com/jillesvangurp/jsonj
JsonObject o=object(
field("aList",array(
1,
2,
object(field("meaningoflife",42)),
"no more builder"))
),
field("another", "element"),
field("aSet",set(1,2,3),
field("nestedlists",array(
array(1,2),
array(3,4)
))
);
String json=o.toString();
Я использую несколько статических методов, которые можно статически импортировать.Методы построения полиморфны и используют переменные.JsonObject, JsonArray, JsonSet и JsonPrimitive ведут себя в разумных пределах и также поддерживают непатентованные средства.