[OmniFaces utilities] The
encode()
method encodes the given object as JSON. This supports the standard types Boolean
, Number
, CharSequence
and Date
. If the given object type does not match any of them, then it will attempt to inspect the object as a java bean whereby the public properties (with public getters) will be encoded as a JS object. It also supports Collection
s, Map
s and arrays of them, even nested ones. The Date
is formatted in RFC 1123 format, so you can if necessary just pass it straight to new Date()
in JavaScript.Method:
Read more:
Usage:For example, suppose we have the following bean:
import java.util.Date;
...
public class Player {
private Boolean
righthanded;
private String name;
private Integer age;
private Date birthdate;
public Player(Boolean
righthanded, String name, Integer age, Date birthdate) {
this.righthanded =
righthanded;
this.name = name;
this.age = age;
this.birthdate = birthdate;
}
...
// getters and setters
}
And, we
define a Map of Players:
Map<String, Player> players = new HashMap<>();
players.put("1", new Player(false, "Rafael
Nadal", 28, new Date()));
players.put("2", new Player(true, "Novak
Djokovic", 27, new Date()));
players.put("3", new Player(true, "Andy Murray",
27, new Date()));
Now we can
encode the players map into a JSON object:
import org.omnifaces.util.Json;
...
String
jsonPlayers = Json.encode(players);
JSON-encoded
representation of the given object will be:
{"1":{"age":28,"birthdate":"Thu,
23 Apr 2015 13:09:02 GMT","name":"Rafael
Nadal","righthanded":false},"2":{"age":27,"birthdate":"Thu,
23 Apr 2015 13:09:02 GMT","name":"Novak
Djokovic","righthanded":true},"3":{"age":27,"birthdate":"Thu,
23 Apr 2015 13:09:02 GMT","name":"Andy
Murray","righthanded":true}}
Or, nicely
formatted:
Note Behind the scene, Json#encode()
will use:
·
Json#encodeMap() - since players
is a Map
·
Json#encodeBean() - since players contains instances of the
Player bean
·
the supported Java standard types - since Player bean contains properties of Java standard types
Niciun comentariu :
Trimiteți un comentariu