## jackson/src/main/java/com/fasterxml/jackson/databind/node/ObjectNode.java:280-320
280:         return _children.values().iterator();
281:     }
282: 
283:     @Override
284:     public JsonNode get(int index) { return null; }
285: 
286:     @Override
287:     public JsonNode get(String propertyName) {
288:         return _children.get(propertyName);
289:     }
290: 
291:     /**
292:      * @since 2.19
293:      */
294:     @Override
295:     public Optional<JsonNode> optional(String propertyName) {
296:         return Optional.ofNullable(get(propertyName));
297:     }
298: 
299:     @Override
300:     public JsonNode path(int index) {
301:         return MissingNode.getInstance();
302:     }
303: 
304:     @Override
305:     public JsonNode path(String propertyName)
306:     {
307:         JsonNode n = _children.get(propertyName);
308:         if (n != null) {
309:             return n;
310:         }
311:         return MissingNode.getInstance();
312:     }
313: 
314:     @Override
315:     public JsonNode required(String propertyName) {
316:         JsonNode n = _children.get(propertyName);
317:         if (n != null) {
318:             return n;
319:         }
320:         return _reportRequiredViolation("No value for property '%s' of `ObjectNode`", propertyName);

## jackson/src/main/java/com/fasterxml/jackson/databind/DeserializationFeature.java:35-55
35:      * or {@link java.util.Collection} context) is available.
36:      * If enabled such values will be deserialized as {@link java.math.BigDecimal}s;
37:      * if disabled, will be deserialized as {@link Double}s.
38:      *<p>
39:      * NOTE: one aspect of {@link java.math.BigDecimal} handling that may need
40:      * configuring is whether trailing zeroes are trimmed:
41:      * {@link com.fasterxml.jackson.databind.node.JsonNodeFactory} has
42:      * {@link com.fasterxml.jackson.databind.node.JsonNodeFactory#withExactBigDecimals} for
43:      * changing default behavior (default is for trailing zeroes to be trimmed).
44:      *<p>
45:      * Feature is disabled by default, meaning that "untyped" floating
46:      * point numbers will by default be deserialized as {@link Double}s
47:      * (choice is for performance reason -- BigDecimals are slower than
48:      * Doubles).
49:      */
50:     USE_BIG_DECIMAL_FOR_FLOATS(false),
51: 
52:     /**
53:      * Feature that determines whether JSON integral (non-floating-point)
54:      * numbers are to be deserialized into {@link java.math.BigInteger}s
55:      * if only generic type description (either {@link Object} or

## jackson/src/main/java/com/fasterxml/jackson/databind/DeserializationFeature.java:105-123
105:     /******************************************************
106:      */
107: 
108:     /**
109:      * Feature that determines whether encountering of unknown
110:      * properties (ones that do not map to a property, and there is
111:      * no "any setter" or handler that can handle it)
112:      * should result in a failure (by throwing a
113:      * {@link JsonMappingException}) or not.
114:      * This setting only takes effect after all other handling
115:      * methods for unknown properties have been tried, and
116:      * property remains unhandled.
117:      *<p>
118:      * Feature is enabled by default (meaning that a
119:      * {@link JsonMappingException} will be thrown if an unknown property
120:      * is encountered).
121:      */
122:     FAIL_ON_UNKNOWN_PROPERTIES(true),
123: 

## jackson/src/test/java/com/fasterxml/jackson/databind/node/ObjectNodeTest.java:472-508
472:     // [databind#237] (databind): support DeserializationFeature#FAIL_ON_READING_DUP_TREE_KEY
473:     @Test
474:     public void testFailOnDupKeys() throws Exception
475:     {
476:         final String DUP_JSON = "{ \"a\":1, \"a\":2 }";
477: 
478:         // first: verify defaults:
479:         assertFalse(MAPPER.isEnabled(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY));
480:         ObjectNode root = _objNode(DUP_JSON);
481:         assertEquals(2, root.path("a").asInt());
482: 
483:         // and then enable checks:
484:         try {
485:             MAPPER.reader(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY).readTree(DUP_JSON);
486:             fail("Should have thrown exception!");
487:         } catch (MismatchedInputException e) {
488:             verifyException(e, "duplicate field 'a'");
489:         }
490:     }
491: 
492:     @Test
493:     public void testFailOnDupNestedKeys() throws Exception
494:     {
495:         final String DOC = a2q(
496:                 "{'node' : { 'data' : [ 1, 2, { 'a':3 }, { 'foo' : 1, 'bar' : 2, 'foo': 3}]}}"
497:         );
498:         try {
499:             MAPPER.readerFor(ObNodeWrapper.class)
500:                 .with(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY)
501:                 .readValue(DOC);
502:             fail("Should have thrown exception!");
503:         } catch (MismatchedInputException e) {
504:             verifyException(e, "duplicate field 'foo'");
505:         }
506:     }
507: 
508:     @Test
