mirror of https://github.com/alibaba/fastjson2.git
				
				
				
			fix kotlin support, for issue #3288
This commit is contained in:
		
							parent
							
								
									5b34823b40
								
							
						
					
					
						commit
						3cb9068b4f
					
				|  | @ -1297,6 +1297,10 @@ public abstract class BeanUtils { | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         String fieldName = getterName(methodName, namingStrategy); |         String fieldName = getterName(methodName, namingStrategy); | ||||||
|  |         int subIndex; | ||||||
|  |         if (kotlin && (subIndex = fieldName.indexOf('-')) != -1) { | ||||||
|  |             fieldName = fieldName.substring(0, subIndex); | ||||||
|  |         } | ||||||
| 
 | 
 | ||||||
|         if (fieldName.length() > 2 |         if (fieldName.length() > 2 | ||||||
|                 && fieldName.charAt(0) >= 'A' && fieldName.charAt(0) <= 'Z' |                 && fieldName.charAt(0) >= 'A' && fieldName.charAt(0) <= 'Z' | ||||||
|  |  | ||||||
|  | @ -0,0 +1,27 @@ | ||||||
|  | package com.alibaba.fastjson2.issues | ||||||
|  | 
 | ||||||
|  | import com.alibaba.fastjson2.JSON | ||||||
|  | import com.alibaba.fastjson2.toJSONString | ||||||
|  | import org.junit.jupiter.api.Assertions.assertEquals | ||||||
|  | import org.junit.jupiter.api.Test | ||||||
|  | 
 | ||||||
|  | class Issue3288 { | ||||||
|  |     @JvmInline | ||||||
|  |     value class TestBean(val a: Int) | ||||||
|  | 
 | ||||||
|  |     data class Test2( | ||||||
|  |         val b: TestBean | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     fun test() { | ||||||
|  |         val s1 = "{\"a\":1}" | ||||||
|  |         assertEquals(s1, TestBean(1).toJSONString()) | ||||||
|  |         assertEquals(s1, JSON.parseObject(s1, TestBean::class.java).toJSONString()) | ||||||
|  |         assertEquals(s1, TestBean(1).toJSONString()) | ||||||
|  |         val s2 = "{\"b\":2}" | ||||||
|  |         assertEquals(s2, JSON.parseObject(s2, Test2::class.java) | ||||||
|  |             .toJSONString()) | ||||||
|  |         assertEquals(s2, JSON.parseObject(s2, Test2::class.java).toJSONString()) | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue