From ff1fce190c71639e0780bc3ea49ef2d238d0604a Mon Sep 17 00:00:00 2001 From: ajermakovics Date: Fri, 3 Mar 2017 13:39:51 +0000 Subject: [PATCH] Fixing Json instantiation using reflection --- src/main/java/org/andrejs/json/Json.java | 6 ++++-- src/test/java/org/andrejs/json/JsonTest.java | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/andrejs/json/Json.java b/src/main/java/org/andrejs/json/Json.java index 73df4b7..a6b63e8 100644 --- a/src/main/java/org/andrejs/json/Json.java +++ b/src/main/java/org/andrejs/json/Json.java @@ -73,7 +73,7 @@ public int hashCode() { @SuppressWarnings("unchecked") public T get(String key) { - return (T) map.get(key); + return (T) toMap().get(key); } @SuppressWarnings({ "unchecked", "rawtypes" }) @@ -146,8 +146,10 @@ public Json copy() { /** Read declared field values using reflection **/ Map readFields() { - Map fieldVals = new LinkedHashMap(); + Map fieldVals = new LinkedHashMap<>(); for(Field f: getClass().getDeclaredFields()) { + if(f.getName().contains("$")) + continue; Object val = JsonSerializer.getFieldValue(f, this); if( val != null && !isStatic(f.getModifiers()) ) fieldVals.put( f.getName() , val); diff --git a/src/test/java/org/andrejs/json/JsonTest.java b/src/test/java/org/andrejs/json/JsonTest.java index b8b7871..4943f40 100644 --- a/src/test/java/org/andrejs/json/JsonTest.java +++ b/src/test/java/org/andrejs/json/JsonTest.java @@ -43,6 +43,7 @@ public void containsAnonymousClassFields() throws Exception { String key2 = "val"; }; int val = json.get("key"); + System.out.println(json); assertEquals(123, val); assertEquals("val", json.get("key2")); }