Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot access java variable in javascript

I am trying to access a java variable holding Json data in javascript but instead of getting the data I get the following the html source.

java:

 Gson gson = new Gson();
 String json = gson.toJson(obj);
 request.setAttribute("gsonData", gson);

javascript:

var dataset = ${gsonData};

The data in the html page source:

var dataset = {serializeNulls:falsefactories:[Factory[type=com.google.gson.JsonElement,
adapter=com.google.gson.internal.bind.TypeAdapters$25@719474],
com.google.gson.internal.bind.ObjectTypeAdapter$1@31d22,
 Factory[type=java.lang.String,
adapter=com.google.gson.internal.bind.TypeAdapters$13@1aacfcf],
 Factory[type=java.lang.Integer+int,
adapter=com.google.gson.internal.bind.TypeAdapters$7@977b2d],
 Factory[type=java.lang.Boolean+boolean,
adapter=com.google.gson.internal.bind.TypeAdapters$3@b18cbf],
 Factory[type=java.lang.Byte+byte,
adapter=com.google.gson.internal.bind.TypeAdapters$5@7964c6],
 Factory[type=java.lang.Short+short,
adapter=com.google.gson.internal.bind.TypeAdapters$6@1ec0cb1],
 Factory[type=java.lang.Long+long,
adapter=com.google.gson.internal.bind.TypeAdapters$8@9752b2],
 Factory[type=java.lang.Double+double,
adapter=com.google.gson.Gson$4@992d41],
 Factory[type=java.lang.Float+float,
adapter=com.google.gson.Gson$5@fedab9],
 Factory[type=java.lang.Number,
adapter=com.google.gson.internal.bind.TypeAdapters$11@89e335],
 Factory[type=java.lang.Character+char,
adapter=com.google.gson.internal.bind.TypeAdapters$12@1d2554],
 Factory[type=java.lang.StringBuilder,
adapter=com.google.gson.internal.bind.TypeAdapters$16@16294d3],
 Factory[type=java.lang.StringBuffer,
adapter=com.google.gson.internal.bind.TypeAdapters$17@1a4510f],
 Factory[type=java.math.BigDecimal,
adapter=com.google.gson.internal.bind.TypeAdapters$14@4b80c5],
 Factory[type=java.math.BigInteger,
adapter=com.google.gson.internal.bind.TypeAdapters$15@133375d],
 Factory[type=java.net.URL,
adapter=com.google.gson.internal.bind.TypeAdapters$18@30f324],
 Factory[type=java.net.URI,
adapter=com.google.gson.internal.bind.TypeAdapters$19@16be244],
 Factory[type=java.util.UUID,
adapter=com.google.gson.internal.bind.TypeAdapters$21@1501d84],
 Factory[type=java.util.Locale,
adapter=com.google.gson.internal.bind.TypeAdapters$24@1255f6c],
 Factory[typeHierarchy=java.net.InetAddress,
adapter=com.google.gson.internal.bind.TypeAdapters$20@a92e7f],
 Factory[type=java.util.BitSet,
adapter=com.google.gson.internal.bind.TypeAdapters$2@5a9aac],
 com.google.gson.internal.bind.DateTypeAdapter$1@1c5051e,
 Factory[type=java.util.Calendar+java.util.GregorianCalendar,
adapter=com.google.gson.internal.bind.TypeAdapters$23@6efe35],
 com.google.gson.internal.bind.TimeTypeAdapter$1@187e651,
 com.google.gson.internal.bind.SqlDateTypeAdapter$1@12c81b7,
 com.google.gson.internal.bind.TypeAdapters$22@3a8f79,
 com.google.gson.internal.bind.ArrayTypeAdapter$1@1744f5d,
 com.google.gson.internal.bind.TypeAdapters$26@16b870c,
 Factory[type=java.lang.Class,
adapter=com.google.gson.internal.bind.TypeAdapters$1@9f99af],
 com.google.gson.internal.Excluder@408302,
 com.google.gson.internal.bind.CollectionTypeAdapterFactory@c22e44,
 com.google.gson.internal.bind.MapTypeAdapterFactory@446bcc,
 com.google.gson.internal.bind.ReflectiveTypeAdapterFactory@1d8ae60],
instanceCreators:{}};

What is proper way to access the data?

like image 772
Hafsa Abdul gafoor Avatar asked Sep 04 '26 23:09

Hafsa Abdul gafoor


1 Answers

You wrote :

request.setAttribute("gsonData", gson);

But don't you want more :

request.setAttribute("jsonData", json);

I.e. put the content of obj instead of the GSon object ?

like image 82
Gaël J Avatar answered Sep 07 '26 12:09

Gaël J



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!