类com.fasterxml.jackson.core.ObjectCodec源码实例Demo

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


@Override
public T deserialize( JsonParser p, DeserializationContext ctxt ) throws IOException
{
    final ObjectCodec oc = p.getCodec();
    final JsonNode jsonNode;

    if ( oc instanceof XmlMapper )
    {
        jsonNode = createJsonNode( p, ctxt );
        return objectMapper.treeToValue( jsonNode, overrideClass );
    }
    else
    {
        jsonNode = oc.readTree( p );
        // original object mapper must be used since it may have different serialization settings
        return oc.treeToValue( jsonNode, overrideClass );
    }
}
 

@Override
public TargetWrapperDescriptor deserialize( JsonParser parser, DeserializationContext context ) throws IOException {

	ObjectCodec oc = parser.getCodec();
	JsonNode node = oc.readTree( parser );
	TargetWrapperDescriptor twd = new TargetWrapperDescriptor();

	JsonNode n;
	if(( n = node.get( DESC )) != null )
		twd.setDescription( n.textValue());

	if(( n = node.get( TARGET_HANDLER )) != null )
		twd.setHandler( n.textValue());

	if(( n = node.get( ID )) != null )
		twd.setId( n.textValue());

	if(( n = node.get( NAME )) != null )
		twd.setName( n.textValue());

	return twd;
}
 
源代码3 项目: jolt   文件: LogicalFilter4.java

@Override
public LogicalFilter4 deserialize( JsonParser jp, DeserializationContext ctxt ) throws IOException {

    ObjectCodec objectCodec = jp.getCodec();
    ObjectNode root = jp.readValueAsTree();

    // We assume it is a LogicalFilter
    Iterator<String> iter = root.fieldNames();
    String key = iter.next();

    JsonNode arrayNode = root.iterator().next();
    if ( arrayNode == null || arrayNode.isMissingNode() || ! arrayNode.isArray() ) {
        throw new RuntimeException( "Invalid format of LogicalFilter encountered." );
    }

    // pass in our objectCodec so that the subJsonParser knows about our configured Modules and Annotations
    JsonParser subJsonParser = arrayNode.traverse( objectCodec );
    List<QueryFilter4> childrenQueryFilters = subJsonParser.readValueAs( new TypeReference<List<QueryFilter4>>() {} );

    return new LogicalFilter4( QueryParam.valueOf( key ), childrenQueryFilters );
}
 
源代码4 项目: docker-java   文件: Ports.java

@Override
public Ports deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {

    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> field = it.next();
        if (!field.getValue().equals(NullNode.getInstance())) {
            String hostIp = field.getValue().get(0).get("HostIp").textValue();
            String hostPort = field.getValue().get(0).get("HostPort").textValue();
            out.addPort(Port.makePort(field.getKey(), hostIp, hostPort));
        }
    }
    return out;
}
 

@Override
public SourceForgeArticle deserialize(JsonParser parser,
        DeserializationContext context) throws IOException,
        JsonProcessingException {

    ObjectCodec oc = parser.getCodec();
    JsonNode node = oc.readTree(parser);
    
    JsonNode attachmentsNode = node.path("attachments");
    SourceForgeAttachment[] attachments = oc.treeToValue(attachmentsNode, SourceForgeAttachment[].class);
    
    SourceForgeArticle article = new SourceForgeArticle();
    article.setArticleNumber(articleNumber++);
    article.setSubject(getText(node, "subject"));
    article.setText(getText(node, "text"));
    article.setUser(getText(node,"author"));
    article.setAttachments(attachments);
    article.setArticleId(getText(node, "slug"));
    article.setDate(getDate(node, SourceForgeConstants.RESPONSE_DATE_FORMATTER, "timestamp"));
    article.setUpdateDate(getDate(node, SourceForgeConstants.RESPONSE_DATE_FORMATTER, "last_edited"));
    article.setReferences(new String[0]);
    return article;
}
 
源代码6 项目: scava   文件: JiraCommentDeserialiser.java

@Override
public JiraComment deserialize(JsonParser parser,
        DeserializationContext context) throws IOException,
        JsonProcessingException {
    
    
    ObjectCodec oc = parser.getCodec();
    JsonNode node = oc.readTree(parser);

    JiraComment comment = new JiraComment();

    comment.setCommentId(getText(node, "id"));
    comment.setCreationTime(getDate(node, context, "created"));
    comment.setCreator(getText(node, "author", "name"));
    comment.setText(getText(node, "body"));
    comment.setUpdateAuthor(getText(node, "updateAuthor", "name"));
    comment.setUpdateDate(getDate(node, context, "updated"));
    comment.setUrl(getText(node, "self"));

    return comment;

}
 

@Override
public Component deserialize( JsonParser parser, DeserializationContext context ) throws IOException {

	ObjectCodec oc = parser.getCodec();
	JsonNode node = oc.readTree( parser );
	Component component = new Component();

	JsonNode n;
	if(( n = node.get( NAME )) != null )
		component.setName( n.textValue());

	if(( n = node.get( COMP_INSTALLER )) != null )
		component.setInstallerName( n.textValue());

	return component;
}
 

@Override
public SourceForgeComment deserialize(JsonParser parser,
        DeserializationContext context) throws IOException,
        JsonProcessingException {
    
    ObjectCodec oc = parser.getCodec();
    JsonNode node = oc.readTree(parser);
    
    JsonNode attachmentsNode = node.path("attachments");
    SourceForgeAttachment[] attachments = oc.treeToValue(attachmentsNode, SourceForgeAttachment[].class);
    
    SourceForgeComment comment = new SourceForgeComment();
    comment.setSubject(getText(node, "subject"));
    comment.setText(getText(node, "text"));
    comment.setCreator(getText(node,"author"));
    comment.setAttachments(attachments);
    comment.setCommentId(getText(node, "slug"));
    comment.setCreationTime(getDate(node, SourceForgeConstants.RESPONSE_DATE_FORMATTER, "timestamp"));
    comment.setUpdateDate(getDate(node, SourceForgeConstants.RESPONSE_DATE_FORMATTER, "last_edited"));
    
    return comment;
}
 

@Override
public Map<PublicKey, Integer> deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
        throws IOException {

    HashMap<PublicKey, Integer> result = new HashMap<>();

    ObjectCodec codec = jsonParser.getCodec();
    TreeNode rootNode = codec.readTree(jsonParser);

    if (rootNode.isArray()) {
        for (JsonNode node : (ArrayNode) rootNode) {
            PublicKey publicKey = new PublicKey((node.get(0)).asText());
            result.put(publicKey, (node.get(0)).asInt());
        }

        return result;
    }

    throw new IllegalArgumentException("JSON Node is not an array.");
}
 

@Override
public CoinbaseAddresses deserialize(JsonParser jp, DeserializationContext ctxt)
    throws IOException, JsonProcessingException {

  final ObjectCodec oc = jp.getCodec();
  final JsonNode node = oc.readTree(jp);
  final JsonNode addressesArrayNode = node.path("addresses");

  final List<CoinbaseAddress> addresses = new ArrayList<>();
  for (JsonNode addressNode : addressesArrayNode) {
    addresses.add(getAddressFromNode(addressNode));
  }

  final int totalCount = node.path("total_count").asInt();
  final int numPages = node.path("num_pages").asInt();
  final int currentPage = node.path("current_page").asInt();

  return new CoinbaseAddresses(addresses, totalCount, numPages, currentPage);
}
 
源代码11 项目: haven-platform   文件: ExposedPorts.java

@Override
public ExposedPorts deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
        throws IOException {

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

        Map.Entry<String, JsonNode> field = it.next();
        if (!field.getValue().equals(NullNode.getInstance())) {
            exposedPorts.add(ExposedPort.parse(field.getKey()));
        }
    }
    return new ExposedPorts(exposedPorts.toArray(new ExposedPort[0]));
}
 

@Override
public CoinbasePrice deserialize(JsonParser jp, DeserializationContext ctxt)
    throws IOException, JsonProcessingException {

  final ObjectCodec oc = jp.getCodec();
  final JsonNode node = oc.readTree(jp);
  final CoinbaseMoney subTotal =
      CoinbaseMoneyDeserializer.getCoinbaseMoneyFromNode(node.path("subtotal"));
  final JsonNode feesNode = node.path("fees");
  final CoinbaseMoney coinbaseFee =
      CoinbaseMoneyDeserializer.getCoinbaseMoneyFromNode(feesNode.path(0).path("coinbase"));
  final CoinbaseMoney bankFee =
      CoinbaseMoneyDeserializer.getCoinbaseMoneyFromNode(feesNode.path(1).path("bank"));
  final CoinbaseMoney total =
      CoinbaseMoneyDeserializer.getCoinbaseMoneyFromNode(node.path("total"));
  return new CoinbasePrice(coinbaseFee, bankFee, total, subTotal);
}
 
源代码13 项目: AndroidWallet   文件: BitlibJsonModule.java

@Override
public PublicKey deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
   ObjectCodec oc = jp.getCodec();
   JsonNode node = oc.readTree(jp);
   byte[] pubKeyBytes;
   try {
      pubKeyBytes = HexUtils.toBytes(node.asText());
   } catch (RuntimeException e) {
      throw new JsonParseException("Failed to convert string '" + node.asText() + "' into an public key bytes",
            JsonLocation.NA);
   }
   return new PublicKey(pubKeyBytes);
}
 

@Override
public OrderBookEntry deserialize(JsonParser jp, DeserializationContext ctx) throws IOException {
    ObjectCodec oc = jp.getCodec();
    JsonNode node = oc.readTree(jp);
    final String price = node.get(0).asText();
    final String qty = node.get(1).asText();

    OrderBookEntry orderBookEntry = new OrderBookEntry();
    orderBookEntry.setPrice(price);
    orderBookEntry.setQuantity(qty);
    return orderBookEntry;
}
 
源代码15 项目: pegasus   文件: FileServer.java

/**
 * Deserializes a FileServer YAML description of the type
 *
 * <pre>
 * operation: all
 * url: file:///tmp/workflows/scratch
 * </pre>
 *
 * @param jp
 * @param dc
 * @return
 * @throws IOException
 * @throws JsonProcessingException
 */
@Override
public FileServer deserialize(JsonParser jp, DeserializationContext dc)
        throws IOException, JsonProcessingException {
    ObjectCodec oc = jp.getCodec();
    JsonNode node = oc.readTree(jp);
    FileServer fs = new FileServer();

    for (Iterator<Map.Entry<String, JsonNode>> it = node.fields(); it.hasNext(); ) {
        Map.Entry<String, JsonNode> e = it.next();
        String key = e.getKey();
        SiteCatalogKeywords reservedKey = SiteCatalogKeywords.getReservedKey(key);
        if (reservedKey == null) {
            this.complainForIllegalKey(
                    SiteCatalogKeywords.FILESERVERS.getReservedName(), key, node);
        }

        switch (reservedKey) {
            case OPERATION:
                fs.setSupportedOperation(node.get(key).asText());
                break;

            case URL:
                String fullURL = node.get(key).asText();
                PegasusURL url = new PegasusURL(fullURL);
                fs.setURLPrefix(url.getURLPrefix());
                fs.setProtocol(url.getProtocol());
                fs.setMountPoint(url.getPath());
                break;

            default:
                this.complainForUnsupportedKey(
                        SiteCatalogKeywords.FILESERVERS.getReservedName(), key, node);
        }
    }

    return fs;
}
 
源代码16 项目: concursus   文件: CommandJson.java

private BiFunction<JsonNode, Type, Object> makeDeserialiser(ObjectMapper mapper) {
    final TypeFactory typeFactory = mapper.getTypeFactory();
    return (node, type) -> {
        JavaType javaType = typeFactory.constructType(type);
        try {
            final JsonParser jsonParser = mapper.treeAsTokens(node);
            final ObjectCodec codec = jsonParser.getCodec();

            return codec.readValue(jsonParser, javaType);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    };
}
 
源代码17 项目: Wikidata-Toolkit   文件: ValueImpl.java

@Override
public ValueImpl deserialize(JsonParser jsonParser,
		DeserializationContext ctxt) throws IOException {

	ObjectCodec mapper = jsonParser.getCodec();
	JsonNode root = mapper.readTree(jsonParser);
	Class<? extends ValueImpl> valueClass = getValueClass(root, jsonParser);

	return mapper.treeToValue(root, valueClass);
}
 
源代码18 项目: webauthn4j   文件: CertPathDeserializer.java

/**
 * {@inheritDoc}
 */
@Override
public CertPath deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {

    ObjectCodec oc = p.getCodec();
    ArrayNode node = oc.readTree(p);
    List<Certificate> list = new ArrayList<>();
    for (JsonNode item : node) {
        X509Certificate certificate = oc.treeToValue(item, X509Certificate.class);
        list.add(certificate);
    }
    return CertificateUtil.generateCertPath(list);
}
 

@Test
public void test_ctor_params_validation() {
  // param validation
  assertThat(
      () -> new DiagnosticServiceDescriptor<>(null, objectMapper, noop, mbean),
      is(throwing(instanceOf(NullPointerException.class))));
  assertThat(
      () -> new DiagnosticServiceDescriptor<>(Serializable.class, null, noop, mbean),
      is(throwing(instanceOf(NullPointerException.class))));
  assertThat(
      () -> new DiagnosticServiceDescriptor<>(ObjectCodec.class, objectMapper, noop, mbean),
      is(throwing(instanceOf(IllegalArgumentException.class)).andMessage(is(equalTo("Not an interface: " + ObjectCodec.class.getName())))));
}
 
源代码20 项目: ure   文件: ActorDeserializer.java

@Override
public UActor deserialize(JsonParser parser, DeserializationContext context) throws IOException, JsonProcessingException {
    ObjectCodec codec = parser.getCodec();
    JsonNode node = codec.readTree(parser);
    JsonNode typeNode = node.get("type");
    String type = (typeNode != null && !typeNode.isNull()) ? node.get("type").asText() : null;
    Class<? extends UActor> actorClass = classForType(type);
    return objectMapper.treeToValue(node, actorClass);
}
 
源代码21 项目: ure   文件: BehaviorDeserializer.java

@Override
public UBehavior deserialize(JsonParser parser, DeserializationContext context) throws IOException {
    ObjectCodec codec = parser.getCodec();
    JsonNode node = codec.readTree(parser);
    JsonNode typeNode = node.get("type");
    String type = (typeNode != null && !typeNode.isNull()) ? node.get("type").asText() : null;
    Class<? extends UBehavior> behaviorClass = classForType(type);
    return objectMapper.treeToValue(node, behaviorClass);
}
 
源代码22 项目: olingo-odata4   文件: JsonDeserializer.java

private Object fromComplex(final ObjectNode node, final ObjectCodec codec)
    throws IOException, EdmPrimitiveTypeException {

  final ComplexValue complexValue = new ComplexValue();
  final Set<String> toRemove = new HashSet<>();
  for (final Iterator<Map.Entry<String, JsonNode>> itor = node.fields(); itor.hasNext();) {
    final Map.Entry<String, JsonNode> field = itor.next();

    links(field, complexValue, toRemove, node, codec);
  }
  node.remove(toRemove);

  populate(complexValue, complexValue.getValue(), node, codec);
  return complexValue;
}
 
源代码23 项目: Groza   文件: EntityIdDeserializer.java

@Override
public EntityId deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
    ObjectCodec oc = jsonParser.getCodec();
    ObjectNode node = oc.readTree(jsonParser);
    if (node.has("entityType") && node.has("id")) {
        return EntityIdFactory.getByTypeAndId(node.get("entityType").asText(), node.get("id").asText());
    } else {
        throw new IOException("Missing entityType or id!");
    }
}
 

@Override
public ExecutionContext deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
		throws IOException, JsonProcessingException {
	ObjectCodec oc = jsonParser.getCodec();
	JsonNode node = oc.readTree(jsonParser);

	final ExecutionContext executionContext = new ExecutionContext();
	final boolean dirty = node.get("dirty").asBoolean();

	for (JsonNode valueNode : node.get("values")) {

		final JsonNode nodeValue = valueNode.fields().next().getValue();
		final String nodeKey = valueNode.fields().next().getKey();

		if (nodeValue.isNumber() && !nodeValue.isFloatingPointNumber() && nodeValue.canConvertToInt()) {
			executionContext.putInt(nodeKey, nodeValue.asInt());
		}
		else if (nodeValue.isNumber() && !nodeValue.isFloatingPointNumber() && nodeValue.canConvertToLong()) {
			executionContext.putLong(nodeKey, nodeValue.asLong());
		}
		else if (nodeValue.isFloatingPointNumber()) {
			executionContext.putDouble(nodeKey, nodeValue.asDouble());
		}
		else if (nodeValue.isBoolean()) {
			executionContext.putString(nodeKey, String.valueOf(nodeValue.asBoolean()));
		}
		else if (nodeValue.isTextual()) {
			executionContext.putString(nodeKey, nodeValue.asText());
		}
		else {
			executionContext.put(nodeKey, nodeValue.toString());
		}
	}

	if (!dirty && executionContext.isDirty()) {
		executionContext.clearDirtyFlag();
	}

	return executionContext;
}
 

@Override
public BusinessObject deserialize(JsonParser parser, DeserializationContext ctxt)
        throws IOException {
    ObjectCodec oc = parser.getCodec();
    ObjectNode treeNode = oc.readTree(parser);

    BusinessObject businessObject = new BusinessObject();
    //Create first node
    NodeBusinessObjectInput node = new NodeBusinessObjectInput(getValueIfExist(treeNode, NAME));
    node.setMultiple(true);
    node.setPageDataName(getValueIfExist(treeNode, VARIABLE_NAME));
    parseNodeContractInput(childInput(treeNode), node);
    businessObject.addInput(node);
    return businessObject;
}
 

@Override
public Audience deserialize(JsonParser parser, DeserializationContext context) throws IOException {
    ObjectCodec codec = parser.getCodec();
    JsonNode node = codec.readTree(parser);

    String id = node.get("id").textValue();
    String name = node.get("name").textValue();

    JsonNode conditionsJson = node.get("conditions");
    conditionsJson = objectMapper.readTree(conditionsJson.textValue());

    Condition conditions = ConditionJacksonDeserializer.<UserAttribute>parseCondition(UserAttribute.class, objectMapper, conditionsJson);

    return new Audience(id, name, conditions);
}
 

@Override
public OrderBookEntry deserialize(JsonParser jp, DeserializationContext ctx) throws IOException {
    ObjectCodec oc = jp.getCodec();
    JsonNode node = oc.readTree(jp);
    final String price = node.get(0).asText();
    final String qty = node.get(1).asText();

    OrderBookEntry orderBookEntry = new OrderBookEntry();
    orderBookEntry.setPrice(price);
    orderBookEntry.setQuantity(qty);
    return orderBookEntry;
}
 

@Override
public Set<BitmexOrderFlags> deserialize(JsonParser jsonParser, DeserializationContext ctxt)
    throws IOException, JsonProcessingException {

  ObjectCodec oc = jsonParser.getCodec();
  JsonNode node = oc.readTree(jsonParser);
  String orderFlagsString = node.textValue();
  Set<BitmexOrderFlags> orderFlags = EnumSet.noneOf(BitmexOrderFlags.class);
  if (!orderFlagsString.isEmpty()) {
    for (String orderFlag : orderFlagsString.split(",")) orderFlags.add(fromString(orderFlag));
  }
  return orderFlags;
}
 
源代码29 项目: haven-platform   文件: VolumesFrom.java

@Override
public VolumesFrom deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
        throws IOException {

    ObjectCodec oc = jsonParser.getCodec();
    JsonNode node = oc.readTree(jsonParser);
    return VolumesFrom.parse(node.asText());

}
 

@Override
public BitmexFee deserialize(JsonParser jsonParser, DeserializationContext ctxt)
    throws IOException, JsonProcessingException {

  ObjectCodec oc = jsonParser.getCodec();
  JsonNode node = oc.readTree(jsonParser);
  BigDecimal volume = new BigDecimal(node.path(0).asText());
  BigDecimal fee = new BigDecimal(node.path(1).asText());

  return new BitmexFee(volume, fee);
}
 
 同包方法