Yes also a big thanks from me - and apologize that after the switch from json.org to openjson so many issues came up.
kind regards Tobias > Am 22.04.2017 um 14:14 schrieb Maxim Solodovnik <[email protected]>: > > Done: > https://github.com/openjson/openjson/commit/d2367f28cebd8f21c4a4e22faec4cab2f8a95982 > Thanks for the test :) > > BTW the test was modified: call new JSONObject(this) inside toJSONString() > leads to StackOverflow > > On Sat, Apr 22, 2017 at 12:31 PM, Maxim Solodovnik <[email protected]> > wrote: > >> There is no code to call this method >> I'll check it later today >> >> WBR, Maxim >> (from mobile, sorry for the typos) >> >>> On Apr 22, 2017 02:01, "Sebastien" <[email protected]> wrote: >>> >>> Hi again, >>> >>> The issue is that pojos implementing JSONString seems to not have their >>> #toJSONString called during JSONObject#toString >>> Looking at the code does not indicates an obvious reason, and for the >>> weird >>> one I have some difficulties to debug (caught the JSONException block in >>> debug mode, probably due to the reflection, or maybe my eclipse is >>> dying...) >>> >>> Here is a simple test case for whom would like to have a look: >>> >>> @Test >>> public void testToString() >>> { >>> MyPojo1 myPojo1 = new MyPojo1(); >>> MyPojo2 myPojo2 = new MyPojo2(); >>> >>> String json1 = new JSONObject(myPojo1).toString(); >>> String json2 = new JSONObject(myPojo2).toString(); // FIXME: >>> #toJSONString is never called >>> >>> Assert.assertEquals(json1, >>> "{\"myProp1\":\"value1\",\"myProp2\":\"value2\"}"); >>> Assert.assertEquals(json2, >>> "{\"myProp3\":\"value3\",\"myProp4\":\"value4\",\"myProp5\": >>> \"value5\"}"); >>> } >>> >>> public static class MyPojo1 >>> { >>> private String myProp1 = "value1"; >>> private String myProp2 = "value2"; >>> >>> public MyPojo1() >>> { >>> } >>> >>> public String getMyProp1() >>> { >>> return this.myProp1; >>> } >>> >>> public String getMyProp2() >>> { >>> return this.myProp2; >>> } >>> } >>> >>> public static class MyPojo2 implements JSONString >>> { >>> private String myProp3 = "value3"; >>> private String myProp4 = "value4"; >>> >>> public MyPojo2() >>> { >>> } >>> >>> public String getMyProp3() >>> { >>> return this.myProp3; >>> } >>> >>> public String getMyProp4() >>> { >>> return this.myProp4; >>> } >>> >>> @Override >>> public String toJSONString() >>> { >>> JSONObject object = new JSONObject(this); >>> object.put("myProp5", "value5"); >>> >>> return object.toString(); >>> } >>> } >>> >>> Best regards, >>> Sebastien. >>> >>> On Fri, Apr 21, 2017 at 8:36 PM, Andrea Del Bene <[email protected]> >>> wrote: >>> >>>> Take your time. Better be sure to have fixed possible problems with json >>>> migration. >>>> >>>> >>> >> > > > -- > WBR > Maxim aka solomax
