@@ -70,7 +70,13 @@ inline fun <reified T> Any?.checkTypeMismatch(): T {
7070
7171inline fun <reified T > ObjectMapper.readValue (jp : JsonParser ): T = readValue(jp, jacksonTypeRef<T >())
7272 .checkTypeMismatch()
73- inline fun <reified T > ObjectMapper.readValues (jp : JsonParser ): MappingIterator <T > = readValues(jp, jacksonTypeRef<T >())
73+ inline fun <reified T > ObjectMapper.readValues (jp : JsonParser ): MappingIterator <T > {
74+ val values = readValues(jp, jacksonTypeRef<T >())
75+
76+ return object : MappingIterator <T >(values) {
77+ override fun nextValue (): T = super .nextValue().checkTypeMismatch()
78+ }
79+ }
7480
7581inline fun <reified T > ObjectMapper.readValue (src : File ): T = readValue(src, jacksonTypeRef<T >()).checkTypeMismatch()
7682inline fun <reified T > ObjectMapper.readValue (src : URL ): T = readValue(src, jacksonTypeRef<T >()).checkTypeMismatch()
@@ -89,7 +95,13 @@ inline fun <reified T> ObjectMapper.convertValue(from: Any?): T = convertValue(f
8995
9096inline fun <reified T > ObjectReader.readValueTyped (jp : JsonParser ): T = readValue(jp, jacksonTypeRef<T >())
9197 .checkTypeMismatch()
92- inline fun <reified T > ObjectReader.readValuesTyped (jp : JsonParser ): Iterator <T > = readValues(jp, jacksonTypeRef<T >())
98+ inline fun <reified T > ObjectReader.readValuesTyped (jp : JsonParser ): Iterator <T > {
99+ val values = readValues(jp, jacksonTypeRef<T >())
100+
101+ return object : Iterator <T > by values {
102+ override fun next (): T = values.next().checkTypeMismatch<T >()
103+ }
104+ }
93105inline fun <reified T > ObjectReader.treeToValue (n : TreeNode ): T ? = readValue(this .treeAsTokens(n), jacksonTypeRef<T >())
94106
95107inline fun <reified T , reified U > ObjectMapper.addMixIn (): ObjectMapper = this .addMixIn(T ::class .java, U ::class .java)
0 commit comments