Hi sajith, i have added this Student class for example.As for current implementation goes like this way in Jaggery below.
public static String serializeJSON(Object obj) { if (obj instanceof Wrapper) { obj = ((Wrapper) obj).unwrap(); } if (obj == null) { return "null"; } if (obj instanceof Undefined) { return "null"; } if (obj instanceof Boolean) { return Boolean.toString((Boolean) obj); } if (obj instanceof String) { return serializeString((String) obj); } if (obj instanceof ConsString) { return serializeString(obj.toString()); } if (obj instanceof Number) { return obj.toString(); } if (obj instanceof XMLObject) { return serializeString(serializeXML((ScriptableObject) obj)); } if (obj instanceof NativeObject) { return serializeNativeObject((NativeObject) obj); } if (obj instanceof NativeArray) { return serializeNativeArray((NativeArray) obj); } if (obj instanceof Object[]) { return serializeObjectArray((Object[]) obj); } if (obj instanceof Scriptable) { Scriptable object = (Scriptable) obj; String jsClass = object.getClassName(); if ("Date".equals(jsClass)) { return serializeString(serializeNativeDate(object)); } else if ("Error".equals(jsClass)) { return serializeString(serializeNativeError(object)); } } String JsonString = null; try{ ObjectMapper mapper = new ObjectMapper(); JsonString = mapper.writeValueAsString(obj); }catch (Exception e){ System.out.println(e.getMessage()); } return "{\"javaObject\":\"true\",\"object\":\"" + JsonString + "\"}"; } AFAIU since we are parsing Object type of argument It is better we can use ObjectMapper.Correct me If I am wrong.Your suggestion would be more appreciated. On Sun, Jan 31, 2016 at 10:23 AM, Sajith Ariyarathna <sajit...@wso2.com> wrote: > Hi Rajeenthini, > > AFAIK ability to convert a POJO into JSON object does nor affect the > output of a Jaggery Log of that POJO. > To get a proper log output for a Java object, you need to implement the > "toString" method in that Java class. For example in your case, > > public class Student { > > ... > > public String toString() { > > return "{name: " + this.name + ", age: " + this.age + ", indexNo: " + > this.indexNo + "}"; > > } > > } > > Now you can log a Student object in your Jaggery code as following. > > log.info(studentObj.toString()); > > > Thanks. > > > > On Sat, Jan 30, 2016 at 9:28 PM, Rajeenthini Satkunam < > rajeenth...@wso2.com> wrote: > >> Hi, >> >> I have worked on writing Jaggery test for Jaggery-Product.I can observe >> when we tried to log the object it always gives us empty JSON >> ({}).Currently the implementation goes this way when we try to log java >> object. >> >> So I was trying to get rid of this observed behavior of Jaggery.I have >> gone through a solution. >> >> *using Jackson[1] * >> >> We can convert java object to JSON[2] and can log it. >> >> I have shared the piece of code I have tried out with Jackson below. >> >> *Simple POJO Student class* >> >> public class Student { >> private int age; >> private String name; >> private String indexNo; >> >> public int getAge() { >> return age; >> } >> >> public void setAge(int age) { >> this.age = age; >> } >> >> public String getName() { >> return name; >> } >> >> public void setName(String name) { >> this.name = name; >> } >> >> public String getIndexNo() { >> return indexNo; >> } >> >> public void setIndexNo(String indexNo) { >> this.indexNo = indexNo; >> } >> } >> >> *Simple class to test Jackson* >> >> import com.fasterxml.jackson.databind.ObjectMapper; >> import util.Student; >> public class MyTest { >> public static void main(String args[]){ >> Student st = new Student(); >> st.setIndexNo("DS001"); >> st.setAge(12); >> st.setName("kareena"); >> try{ >> ObjectMapper mapper = new ObjectMapper(); >> String jsonInString = mapper.writeValueAsString(st); >> >> System.out.println("************************************************"); >> System.out.println(jsonInString); >> >> System.out.println("************************************************"); >> >> }catch(Exception e){ >> System.out.print("Exception caught "+ e); >> } >> >> } >> } >> >> Actual output by above code. >> ************************************************ >> {"age":12,"name":"kareena","indexNo":"DS001"} >> ************************************************ >> >> I have added a dependency in the POM.xml >> >> <dependency> >> <groupId>com.fasterxml.jackson.core</groupId> >> <artifactId>jackson-databind</artifactId> >> <version>2.6.3</version> >> </dependency> >> >> >> IMHO we can use the same scenario in case of log JAVA object.Your help >> and suggestions are more appreciated and guide me if I am wrong or I can >> have better solution than this. >> >> [1] - https://github.com/FasterXML/jackson-databind >> [2] - >> http://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/ >> -- >> >> *Thank You.* >> >> *Rajeenthini Satkunam* >> >> *Associate Software Engineer | WSO2* >> >> >> *E:rajeenth...@wso2.com <rajeenth...@wso2.com>* >> >> *M :+94770832823 <%2B94770832823> * >> >> >> _______________________________________________ >> Dev mailing list >> Dev@wso2.org >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> > > > -- > Sajith Ariyarathna > Software Engineer; WSO2, Inc.; http://wso2.com/ > mobile: +94 77 6602284, +94 71 3951048 > -- *Thank You.* *Rajeenthini Satkunam* *Associate Software Engineer | WSO2* *E:rajeenth...@wso2.com <rajeenth...@wso2.com>* *M :+94770832823 *
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev