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 <[email protected]>
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:[email protected] <[email protected]>*
>
> *M :+94770832823 <%2B94770832823>   *
>
>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
Sajith Ariyarathna
Software Engineer; WSO2, Inc.;  http://wso2.com/
mobile: +94 77 6602284, +94 71 3951048
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to