类com.fasterxml.jackson.databind.node.NullNode源码实例Demo

下面列出了怎么用com.fasterxml.jackson.databind.node.NullNode的API类实例代码及写法,或者点击链接到github查看源代码。

private static ObjectNode hasNullMapsNode() {
  ObjectNode node = newObjectNode();
  node.set("int32Map", NullNode.getInstance());
  node.set("int64Map", NullNode.getInstance());
  node.set("uint32Map", NullNode.getInstance());
  node.set("uint64Map", NullNode.getInstance());
  node.set("sint32Map", NullNode.getInstance());
  node.set("sint64Map", NullNode.getInstance());
  node.set("fixed32Map", NullNode.getInstance());
  node.set("fixed64Map", NullNode.getInstance());
  node.set("sfixed32Map", NullNode.getInstance());
  node.set("sfixed64Map", NullNode.getInstance());
  node.set("boolMap", NullNode.getInstance());
  node.set("stringMap", NullNode.getInstance());
  return node;
}
 
源代码2 项目: yosegi   文件: ObjectToJsonNode.java
/**
 * Judge Java objects and create JsonNode.
 */
public static JsonNode get( final Object obj ) throws IOException {
  if ( obj instanceof PrimitiveObject ) {
    return PrimitiveObjectToJsonNode.get( (PrimitiveObject)obj );
  } else if ( obj instanceof String ) {
    return new TextNode( (String)obj );
  } else if ( obj instanceof Boolean ) {
    return BooleanNode.valueOf( (Boolean)obj );
  } else if ( obj instanceof Short ) {
    return IntNode.valueOf( ( (Short)obj ).intValue() );
  } else if ( obj instanceof Integer ) {
    return IntNode.valueOf( (Integer)obj );
  } else if ( obj instanceof Long ) {
    return new LongNode( (Long)obj );
  } else if ( obj instanceof Float ) {
    return new DoubleNode( ( (Float)obj ).doubleValue() );
  } else if ( obj instanceof Double ) {
    return new DoubleNode( (Double)obj );
  } else if ( obj instanceof byte[] ) {
    return new BinaryNode( (byte[])obj );
  } else if ( obj == null ) {
    return NullNode.getInstance();
  } else {
    return new TextNode( obj.toString() );
  }
}
 
源代码3 项目: onos   文件: DistributedNetworkConfigStore.java
@Activate
public void activate() {
    KryoNamespace.Builder kryoBuilder = new KryoNamespace.Builder()
            .register(KryoNamespaces.API)
            .register(ConfigKey.class, ObjectNode.class, ArrayNode.class,
                      JsonNodeFactory.class, LinkedHashMap.class,
                      TextNode.class, BooleanNode.class,
                      LongNode.class, DoubleNode.class, ShortNode.class, IntNode.class,
                      NullNode.class);

    configs = storageService.<ConfigKey, JsonNode>consistentMapBuilder()
            .withSerializer(Serializer.using(kryoBuilder.build()))
            .withName("onos-network-configs")
            .withRelaxedReadConsistency()
            .build();
    configs.addListener(listener);
    log.info("Started");
}
 
源代码4 项目: immutables   文件: Json.java
JsonNode valueOrNull(String name) {
  Objects.requireNonNull(name, "name");

  if (fields != null && fields.has(name)) {
    JsonNode field = fields.get(name);
    if (field.isArray()) {
      // return first element (or null)
      Iterator<JsonNode> iter = field.elements();
      return iter.hasNext() ? iter.next() : null;
    }

    return field;
  }

  JsonNode found = source().at(name);
  return found.isMissingNode() ? NullNode.getInstance() : found;
}
 
源代码5 项目: jslt   文件: BuiltinFunctions.java
public JsonNode call(JsonNode input, JsonNode[] arguments) {
  String json = NodeUtils.toString(arguments[0], true);
  if (json == null)
    return NullNode.instance;

  try {
    JsonNode parsed = NodeUtils.mapper.readTree(json);
    if (parsed == null) // if input is "", for example
      return NullNode.instance;
    return parsed;
  } catch (Exception e) {
    if (arguments.length == 2)
      return arguments[1]; // return fallback on parse fail
    else
      throw new JsltException("from-json can't parse " + json + ": " + e);
  }
}
 
源代码6 项目: jslt   文件: DivideOperator.java
public JsonNode perform(JsonNode v1, JsonNode v2) {
  if (v1.isNull() || v2.isNull())
    return NullNode.instance;

  // we only support the numeric operation and nothing else
  v1 = NodeUtils.number(v1, true, location);
  v2 = NodeUtils.number(v2, true, location);

  if (v1.isIntegralNumber() && v2.isIntegralNumber()) {
    long l1 = v1.longValue();
    long l2 = v2.longValue();
    if (l1 % l2 == 0)
      return new LongNode(l1 / l2);
    else
      return new DoubleNode((double) l1 / (double) l2);
  } else
    return new DoubleNode(perform(v1.doubleValue(), v2.doubleValue()));
}
 
源代码7 项目: netty-rest   文件: IRequestParameter.java
public Object extract(ObjectNode node, RakamHttpRequest request)
{
    JsonNode value = node.get(name);
    Object o;
    if (value == null) {
        o = null;
    }
    else {
        try {
            o = mapper.convertValue(value, type);
        }
        catch (IllegalArgumentException e) {
            throw new HttpRequestException(name +
                    " body parameter cannot be cast to " + type.toString() + ": "+e.getMessage(), BAD_REQUEST);
        }
    }

    if (required && (o == null || o == NullNode.getInstance())) {
        throw new HttpRequestException(name + " body parameter is required", BAD_REQUEST);
    }

    return o;
}
 
源代码8 项目: haven-platform   文件: Ports.java
@Override
public Ports deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
        throws IOException {

    Ports out = new Ports();
    ObjectCodec oc = jsonParser.getCodec();
    JsonNode node = oc.readTree(jsonParser);
    for (Iterator<Map.Entry<String, JsonNode>> it = node.fields(); it.hasNext(); ) {

        Map.Entry<String, JsonNode> portNode = it.next();
        JsonNode bindingsArray = portNode.getValue();
        if (bindingsArray.equals(NullNode.getInstance())) {
            out.bind(ExposedPort.parse(portNode.getKey()), null);
        } else {
            for (int i = 0; i < bindingsArray.size(); i++) {
                JsonNode bindingNode = bindingsArray.get(i);
                if (!bindingNode.equals(NullNode.getInstance())) {
                    String hostIp = bindingNode.get("HostIp").textValue();
                    String hostPort = bindingNode.get("HostPort").textValue();
                    out.bind(ExposedPort.parse(portNode.getKey()), new Binding(hostIp, hostPort));
                }
            }
        }
    }
    return out;
}
 
源代码9 项目: java-stratum   文件: StratumMessageTest.java
@Test
public void deserialize() throws Exception {
    StratumMessage m1 = readValue("{\"id\":123, \"method\":\"a.b\", \"params\":[1, \"x\", null]}");
    assertEquals(123L, (long)m1.id);
    assertEquals("a.b", m1.method);
    assertEquals(Lists.newArrayList(new IntNode(1), new TextNode("x"), NullNode.getInstance()), m1.params);
    StratumMessage m2 = readValue("{\"id\":123, \"result\":{\"x\": 123}}");
    assertTrue(m2.isResult());
    assertEquals(123L, (long)m2.id);
    assertEquals(mapper.createObjectNode().put("x", 123), m2.result);

    StratumMessage m3 = readValue("{\"id\":123, \"result\":[\"x\"]}");
    assertEquals(123L, (long)m3.id);
    //noinspection AssertEqualsBetweenInconvertibleTypes
    assertEquals(mapper.createArrayNode().add("x"), m3.result);
}
 
源代码10 项目: Rosetta   文件: StoredAsJsonTest.java
@Test
public void testAnnotatedSetterWithDefaultNullDeserialization() throws JsonProcessingException {
  ObjectNode node = Rosetta.getMapper().createObjectNode();
  node.put("annotatedSetterWithDefault", NullNode.getInstance());

  StoredAsJsonBean bean = Rosetta.getMapper().treeToValue(node, StoredAsJsonBean.class);
  assertThat(bean.getAnnotatedSetterWithDefault().getStringProperty()).isEqualTo("value");
}
 
源代码11 项目: data-highway   文件: JsonPatchApplierTest.java
@Test
public void createRoad() throws Exception {
  JsonNode road = mapper.readTree("{\"name\":\"road1\"}");

  List<PatchOperation> operations = singletonList(PatchOperation.add("", road));

  JsonNode result = underTest.apply(NullNode.getInstance(), operations);

  assertThat(result.isMissingNode(), is(false));
  assertThat(result.path("name").textValue(), is("road1"));
}
 
源代码12 项目: java-stratum   文件: ElectrumMultiWalletTest.java
@Test
public void testHandleAddressQueueItemNoHistory() throws Exception {
    ECKey key = new ECKey();
    String address = key.toAddress(params).toString();
    control.replay();
    multiWallet.handleAddressQueueItem(
            new StratumMessage(1L, "blockchain.address.subscribe",
                    Lists.newArrayList(TextNode.valueOf(address)), NullNode.getInstance(), mapper));
    control.verify();
}
 
@Before
public void before() {
  road1 = new Road();
  road1.setName("road1");
  road1.setTopicName("road1");
  road1.setDescription("description");
  road1.setContactEmail("contactEmail");
  road1.setEnabled(false);
  status = new KafkaStatus();
  status.setTopicCreated(false);
  road1.setStatus(status);
  road1.setDeleted(false);

  PatchSetEmitter patchSetEmitter = new PatchSetEmitter() {

    @Override
    public void emit(PatchSet patchSet) {
      try {
        JsonNode roadJson = Optional
            .ofNullable(store.get(patchSet.getDocumentId()))
            .map(r -> mapper.convertValue(r, JsonNode.class))
            .orElse(NullNode.instance);
        JsonNode patchJson = mapper.convertValue(patchSet.getOperations(), JsonNode.class);
        JsonPatch jsonPatch = JsonPatch.fromJson(patchJson);
        JsonNode newRoadJson = jsonPatch.apply(roadJson);
        Road nnewRoad = mapper.convertValue(newRoadJson, Road.class);
        store.put(patchSet.getDocumentId(), nnewRoad);
      } catch (IOException | JsonPatchException e) {
        throw new RuntimeException(e);
      }
    }
  };

  store = new HashMap<>();
  client = new TollboothRoadAdminClient(Collections.unmodifiableMap(store), patchSetEmitter);
}
 
源代码14 项目: Rosetta   文件: StoredAsJsonTest.java
@Test
public void testOptionalSetterNullDeserialization() throws JsonProcessingException {
  ObjectNode node = Rosetta.getMapper().createObjectNode();
  node.put("optionalSetter", NullNode.getInstance());

  StoredAsJsonBean bean = Rosetta.getMapper().treeToValue(node, StoredAsJsonBean.class);
  assertThat(bean.getOptionalSetter()).isNotNull();
  assertThat(bean.getOptionalSetter().isPresent()).isFalse();
}
 
源代码15 项目: yosegi   文件: JacksonMessageWriter.java
@Override
public byte[] create( final IParser parser ) throws IOException {
  JsonNode jsonNode;
  if ( parser == null ) {
    jsonNode = NullNode.getInstance();
  } else if ( parser.isMap() || parser.isStruct() ) {
    jsonNode = JacksonParserToJsonObject.getFromObjectParser( parser );
  } else if ( parser.isArray() ) {
    jsonNode = JacksonParserToJsonObject.getFromArrayParser( parser );
  } else {
    jsonNode = NullNode.getInstance();
  }

  return objectMapper.writeValueAsBytes( jsonNode );
}
 
源代码16 项目: james-project   文件: Serializer.java
@SuppressWarnings("unchecked")
@Override
public Optional<Optional<AttributeValue<U>>> deserialize(JsonNode json) {
    if (json instanceof ObjectNode) {
        AttributeValue<U> value = (AttributeValue<U>) AttributeValue.fromJson(json);
        return Optional.of(Optional.of(value));
    } else if (json instanceof NullNode) {
        return Optional.of(Optional.empty());
    } else {
        return Optional.empty();
    }
}
 
源代码17 项目: yosegi   文件: PrimitiveObjectToJsonNode.java
/**
 * Convert PrimitiveObject to JsonNode.
 */
public static JsonNode get( final PrimitiveObject obj ) throws IOException {
  if ( obj == null ) {
    return NullNode.getInstance();
  }
  switch ( obj.getPrimitiveType() ) {
    case BOOLEAN:
      return BooleanNode.valueOf( obj.getBoolean() );
    case BYTE:
      return IntNode.valueOf( obj.getInt() );
    case SHORT:
      return IntNode.valueOf( obj.getInt() );
    case INTEGER:
      return IntNode.valueOf( obj.getInt() );
    case LONG:
      return new LongNode( obj.getLong() );
    case FLOAT:
      return new DoubleNode( obj.getDouble() );
    case DOUBLE:
      return new DoubleNode( obj.getDouble() );
    case STRING:
      return new TextNode( obj.getString() );
    case BYTES:
      return new BinaryNode( obj.getBytes() );
    default:
      return NullNode.getInstance();
  }
}
 
源代码18 项目: yosegi   文件: TestJacksonMessageWriter.java
@Test
public void T_create_json_withNull() throws IOException {
  ObjectMapper mapper = new ObjectMapper();
  JacksonMessageWriter writer = new JacksonMessageWriter();
  PrimitiveObject obj = null;
  byte[] result = writer.create( obj );
  JsonNode node = mapper.readTree( result );
  assertTrue( ( node instanceof NullNode ) );
}
 
源代码19 项目: yosegi   文件: TestJacksonMessageWriter.java
@Test
public void T_create_json_withJacksonNullParser() throws IOException {
  ObjectMapper mapper = new ObjectMapper();
  JacksonMessageWriter writer = new JacksonMessageWriter();
  byte[] result = writer.create( new JacksonNullParser() );
  JsonNode node = mapper.readTree( result );
  assertTrue( ( node instanceof NullNode ) );
}
 
源代码20 项目: jslt   文件: BuiltinFunctions.java
public JsonNode call(JsonNode input, JsonNode[] arguments) {
  JsonNode number = arguments[0];
  if (number.isNull())
    return NullNode.instance;
  else if (!number.isNumber())
    throw new JsltException("round() cannot round a non-number: " + number);

  return new LongNode(Math.round(number.doubleValue()));
}
 
源代码21 项目: onos   文件: UiExtensionManager.java
@Activate
public void activate() {
    Serializer serializer = Serializer.using(KryoNamespaces.API,
                 ObjectNode.class, ArrayNode.class,
                 JsonNodeFactory.class, LinkedHashMap.class,
                 TextNode.class, BooleanNode.class,
                 LongNode.class, DoubleNode.class, ShortNode.class,
                 IntNode.class, NullNode.class, UiSessionToken.class);

    prefsConsistentMap = storageService.<String, ObjectNode>consistentMapBuilder()
            .withName(ONOS_USER_PREFERENCES)
            .withSerializer(serializer)
            .withRelaxedReadConsistency()
            .build();
    prefsConsistentMap.addListener(prefsListener);
    prefs = prefsConsistentMap.asJavaMap();

    tokensConsistentMap = storageService.<UiSessionToken, String>consistentMapBuilder()
            .withName(ONOS_SESSION_TOKENS)
            .withSerializer(serializer)
            .withRelaxedReadConsistency()
            .build();
    tokens = tokensConsistentMap.asJavaMap();

    register(core);

    log.info("Started");
}
 
源代码22 项目: Rosetta   文件: CustomSerializationTest.java
@Test
public void testAnnotatedInnerFieldNullDeserialization() throws JsonProcessingException {
  ObjectNode node = Rosetta.getMapper().createObjectNode();
  node.set("annotatedInnerField", NullNode.getInstance());

  CustomSerializationBean bean = Rosetta.getMapper().treeToValue(node, CustomSerializationBean.class);
  assertThat(bean.getAnnotatedInnerField())
      .isNull();
}
 
源代码23 项目: jslt   文件: BuiltinFunctions.java
public JsonNode call(JsonNode input, JsonNode[] arguments) {
  JsonNode dividend = arguments[0];
  if (dividend.isNull())
    return NullNode.instance;
  else if (!dividend.isNumber())
    throw new JsltException("mod(): dividend cannot be a non-number: " + dividend);

  JsonNode divisor = arguments[1];
  if (divisor.isNull())
    return NullNode.instance;
  else if (!divisor.isNumber())
    throw new JsltException("mod(): divisor cannot be a non-number: " + divisor);

  if (!dividend.isIntegralNumber() || !divisor.isIntegralNumber()) {
    throw new JsltException("mod(): operands must be integral types");
  } else {
    long D = dividend.longValue();
    long d = divisor.longValue();
    if (d == 0)
      throw new JsltException("mod(): cannot divide by zero");

    long r = D % d;
    if (r < 0) {
      if (d > 0)
        r += d;
      else
        r -= d;
    }

    return new LongNode(r);
  }
}
 
源代码24 项目: jslt   文件: BuiltinFunctions.java
public JsonNode call(JsonNode input, JsonNode[] arguments) {
  JsonNode node = arguments[0];
  if (node.isNull())
    return NullNode.instance;
  try {
    // https://stackoverflow.com/a/18993481/90580
    final Object obj = mapper.treeToValue(node, Object.class);
    String jsonString = writer.writeValueAsString(obj);
    return new IntNode(jsonString.hashCode());
  } catch (JsonProcessingException e) {
    throw new JsltException("hash-int: can't process json" + e);
  }
}
 
源代码25 项目: jslt   文件: BuiltinFunctions.java
public JsonNode call(Scope scope, JsonNode input,
                     ExpressionNode[] parameters) {
  // making this a macro means we can evaluate only the parameters
  // that are necessary to find a value, and leave the rest
  // untouched, giving better performance

  for (int ix = 0; ix < parameters.length; ix++) {
    JsonNode value = parameters[ix].apply(scope, input);
    if (NodeUtils.isValue(value))
      return value;
  }
  return NullNode.instance;
}
 
源代码26 项目: gitlab4j-api   文件: ApplicationSettings.java
private Object jsonNodeToValue(JsonNode node) {

        Object value = node;
        if (node instanceof NullNode) {
            value = null;
        } else if (node instanceof TextNode) {
            value = node.asText();
        } else if (node instanceof BooleanNode) {
            value = node.asBoolean();
        } else if (node instanceof IntNode) {
            value = node.asInt();
        } else if (node instanceof FloatNode) {
            value = (float)((FloatNode)node).asDouble();
        } else if (node instanceof DoubleNode) {
            value = (float)((DoubleNode)node).asDouble();
        } else if (node instanceof ArrayNode) {

            int numItems = node.size();
            String[] values = new String[numItems];
            for (int i = 0; i < numItems; i++) {
                values[i] = node.path(i).asText();
            }

            value = values;
        }

        return (value);
    }
 
源代码27 项目: jslt   文件: BuiltinFunctions.java
public JsonNode call(JsonNode input, JsonNode[] arguments) {
  JsonNode number = NodeUtils.number(arguments[0], null);
  if (number == null || number.isNull())
    return NullNode.instance;

  double timestamp = number.asDouble();

  String formatstr = NodeUtils.toString(arguments[1], false);

  TimeZone zone = new SimpleTimeZone(0, "UTC");
  if (arguments.length == 3) {
    String zonename = NodeUtils.toString(arguments[2], false);
    if (!zonenames.contains(zonename))
      throw new JsltException("format-time: Unknown timezone " + zonename);
    zone = TimeZone.getTimeZone(zonename);
  }

  // the performance of this could be better, but it's not so easy
  // to fix that when SimpleDateFormat isn't thread-safe, so we
  // can't safely share it between threads

  try {
    SimpleDateFormat format = new SimpleDateFormat(formatstr);
    format.setTimeZone(zone);
    String formatted = format.format(Math.round(timestamp * 1000));
    return new TextNode(formatted);
  } catch (IllegalArgumentException e) {
    // thrown if format is bad
    throw new JsltException("format-time: Couldn't parse format '" + formatstr + "': " + e.getMessage());
  }
}
 
源代码28 项目: Rosetta   文件: StoredAsJsonTest.java
@Test
public void testAnnotatedGetterNullDeserialization() throws JsonProcessingException {
  ObjectNode node = Rosetta.getMapper().createObjectNode();
  node.put("annotatedGetter", NullNode.getInstance());

  StoredAsJsonBean bean = Rosetta.getMapper().treeToValue(node, StoredAsJsonBean.class);
  assertThat(bean.getAnnotatedGetter()).isNull();
}
 
源代码29 项目: jslt   文件: BuiltinFunctions.java
public JsonNode call(JsonNode input, JsonNode[] arguments) {
  if (arguments[0].isNull())
    return NullNode.instance;

  String urlString = arguments[0].asText();

  try {
    URL aURL = new URL(arguments[0].asText());
    final ObjectNode objectNode = NodeUtils.mapper.createObjectNode();
    if (aURL.getHost() != null && !aURL.getHost().isEmpty())
      objectNode.put("host", aURL.getHost());
    if (aURL.getPort() != -1)
      objectNode.put("port", aURL.getPort());
    if (!aURL.getPath().isEmpty())
      objectNode.put("path", aURL.getPath());
    if (aURL.getProtocol() != null && !aURL.getProtocol().isEmpty())
      objectNode.put("scheme", aURL.getProtocol());
    if (aURL.getQuery() != null && !aURL.getQuery().isEmpty()) {
      objectNode.put("query", aURL.getQuery());
      final ObjectNode queryParamsNode = NodeUtils.mapper.createObjectNode();
      objectNode.set("parameters", queryParamsNode);
      final String[] pairs = aURL.getQuery().split("&");
      for (String pair : pairs) {
        final int idx = pair.indexOf("=");
        final String key = idx > 0 ? URLDecoder.decode(pair.substring(0, idx), "UTF-8") : pair;
        if (!queryParamsNode.has(key)) queryParamsNode.set(key, NodeUtils.mapper.createArrayNode());
        final String value = idx > 0 && pair.length() > idx + 1 ? URLDecoder.decode(pair.substring(idx + 1), "UTF-8") : null;
        final ArrayNode valuesNode = (ArrayNode) queryParamsNode.get(key);
        valuesNode.add(value);
      }
    }
    if(aURL.getRef() != null)
      objectNode.put("fragment", aURL.getRef());
    if(aURL.getUserInfo() != null && !aURL.getUserInfo().isEmpty())
      objectNode.put("userinfo", aURL.getUserInfo());
    return objectNode;
  } catch (MalformedURLException | UnsupportedEncodingException e) {
    throw new JsltException("Can't parse " + urlString, e);
  }
}
 
源代码30 项目: Rosetta   文件: StoredAsJsonTest.java
@Test
public void testAnnotatedFieldNullDeserialization() throws JsonProcessingException {
  ObjectNode node = Rosetta.getMapper().createObjectNode();
  node.put("annotatedField", NullNode.getInstance());

  StoredAsJsonBean bean = Rosetta.getMapper().treeToValue(node, StoredAsJsonBean.class);
  assertThat(bean.getAnnotatedField()).isNull();
}
 
 同包方法