RDFTerm2Json { public static JsonValue fromNode(Node node) { if ( node == null ) return JsonNull.instance; if ( node.isURI() ) return new JsonString(node.getURI()); if ( node.isBlank() ) { Node node2 = RiotLib.blankNodeToIri(node); return new JsonString(node2.getURI()); } if ( node.isVariable() ) return new JsonString("?"+node.getName()); if ( Util.isSimpleString(node) || Util.isLangString(node) ) return new JsonString(node.getLiteralLexicalForm()); RDFDatatype dt = node.getLiteralDatatype(); NodeValue nv = NodeValue.makeNode(node); if ( nv.isNumber() ) { if ( nv.isInteger() ) { try { return JsonNumber.value(nv.getInteger().longValueExact()); } catch (ArithmeticException ex) { } } if ( nv.isDecimal() ) return JsonNumber.value(nv.getDecimal()); if ( nv.isDouble() ) return JsonNumber.value(nv.getDouble()); if ( nv.isFloat() ) return JsonNumber.value(nv.getFloat()); } else if ( nv.isBoolean() ) { return new JsonBoolean(nv.getBoolean()); } return new JsonString(node.getLiteralLexicalForm()); }  static JsonValue fromNode(Node node);  }
@Test public void n2j_9() { assertEquals(JsonNull.instance, RDFTerm2Json.fromNode(null)) ; }