diff --git a/src/main/java/com/alibaba/fastjson/JSONObject.java b/src/main/java/com/alibaba/fastjson/JSONObject.java index 24203f1fd1..5a42425cfd 100644 --- a/src/main/java/com/alibaba/fastjson/JSONObject.java +++ b/src/main/java/com/alibaba/fastjson/JSONObject.java @@ -109,8 +109,14 @@ public boolean containsValue(Object value) { public Object get(Object key) { Object val = map.get(key); - if (val == null && key instanceof Number) { - val = map.get(key.toString()); + if (val == null) { + if (key instanceof Number + || key instanceof Character + || key instanceof Boolean + || key instanceof UUID + ) { + val = map.get(key.toString()); + } } return val; diff --git a/src/test/java/com/alibaba/json/bvt/issue_3300/Issue3356.java b/src/test/java/com/alibaba/json/bvt/issue_3300/Issue3356.java new file mode 100644 index 0000000000..a761a945c4 --- /dev/null +++ b/src/test/java/com/alibaba/json/bvt/issue_3300/Issue3356.java @@ -0,0 +1,21 @@ +package com.alibaba.json.bvt.issue_3300; + +import com.alibaba.fastjson.JSONObject; +import junit.framework.TestCase; + +import java.util.UUID; + +public class Issue3356 extends TestCase { + public void test_for_issue() throws Exception { + UUID uuid = UUID.randomUUID(); + + JSONObject object = new JSONObject(); + object.put("1", "1"); + object.put(uuid.toString(), uuid.toString()); + object.put("A", "A"); + object.put("true", "true"); + assertEquals("1", object.get(1)); + assertEquals("true", object.get(true)); + assertEquals("A", object.get('A')); + } +}