### Question:
JeoJSONWriter extends GeoJSONWriter { public JeoJSONWriter proj(CoordinateReferenceSystem crs) throws IOException { object(); key("name").value(crs.getName()); if (crs.getParameters() != null) { key("params").object(); for (String s : crs.getParameters()) { Matcher m = PROJ_PARAM_RE.matcher(s); if (m.matches()) { String key = m.group(2); String val = m.group(3); if (val != null && !"".equals(val)) { key(key).value(val); } else { key(key).value(key); } } else { key(s).nul(); } } endObject(); } endObject(); return this; } JeoJSONWriter(Writer out);  JeoJSONWriter(Writer out, int indentSize); JeoJSONWriter driver(Driver<?> drv, Map<String,Object> extra); JeoJSONWriter workspace(Workspace ws); JeoJSONWriter dataset(Dataset ds); JeoJSONWriter dataset(VectorDataset vds); JeoJSONWriter dataset(VectorDataset vds, Map<String,Object> extra); JeoJSONWriter dataset(RasterDataset rds); JeoJSONWriter dataset(RasterDataset rds, Map<String,Object> extra); JeoJSONWriter dataset(TileDataset tds); JeoJSONWriter dataset(TileDataset tds, Map<String,Object> extra); JeoJSONWriter proj(CoordinateReferenceSystem crs); @Override JeoJSONWriter object(); @Override JeoJSONWriter array(); @Override JeoJSONWriter key(String key); @Override JeoJSONWriter value(Number value); @Override JeoJSONWriter value(Object value); @Override JeoJSONWriter nul(); @Override JeoJSONWriter value(String value); @Override JeoJSONWriter value(double value); @Override JeoJSONWriter value(long value); @Override JeoJSONWriter endObject(); @Override JeoJSONWriter endArray(); @Override JeoJSONWriter flush();  }### Answer:
@Test public void testProj() throws Exception { JeoJSONWriter w = new JeoJSONWriter(output(), 2); w.proj(Proj.EPSG_4326).flush(); JSONObject obj = (JSONObject) JSONValue.parseWithException(input()); assertEquals("EPSG:4326", obj.get("name")); JSONObject params = (JSONObject) obj.get("params"); assertEquals("longlat", params.get("proj")); assertEquals("WGS84", params.get("datum")); }