Я хочу использовать классы Java-POJO в моем проекте JS: только частные поля, геттеры и сеттеры.Использование javascript, как преобразовать в классы JSON, Java-POJO?
function Event() {
var homeTeam;
var awayTeam;
var id;
var singleBets = [];
var bet;
...
this.getHomeTeam = function(){
return homeTeam;
}
this.setHomeTeam = function(data){
homeTeam = data;
}
this.getAwayTeam = function(){
return awayTeam;
}
this.setAwayTeam = function(data){
awayTeam = data;
}
this.getId = function(){
return id;
}
this.setId = function(data){
id = data;
}
this.getSingleBets = function(){
return singleBets;
}
this.setSingleBets = function(data){
singleBets = data;
}
this.getBet = function(){
return bet;
}
this.setBet = function(data){
bet = data;
}
}
Я бы преобразовал свой класс Java-POJO-like в строку JSON, чтобы отправить его на сервер. Я не могу использовать JSON.stringify (myClass), потому что поля являются частными. Так что я думаю использовать рекурсивный метод, как это ...
var myJsonParse = function(data){
var result = "";
for(var propertyName in data) {
var method = propertyName;
if (method.substring(0,3)=="get"){
... data[propertyName].call() ...
}
}
return result;
}
... но прежде чем я тратить много времени, чтобы написать это, я хочу спросить вас, если есть лучший способ для преобразования Java-POJO-как объект в JSON. Спасибо.
Update # 1
мне стыдно за себя! Это мой рабочий (но абсолютно временное) решение:
this.toJSON = function() {
var bettableEventsString = [];
for (var i = 0, len = bettableEvents.length; i < len; i++) {
bettableEventsString[i] = bettableEvents[i].toJSON();
}
var result = JSON.stringify({
userId: userId,
championshipDayId: championshipDayId,
championshipDayName: championshipDayName
});
result = result.substring(0, result.length-1);
result += ',\n "bettableEvents" : [ ' + bettableEventsString + " ] ";
result += " } "
return result;
}
как насчет закрытия? – argentum47
Да, это хорошая идея, но я не знаю, как сделать этот метод рекурсивным с внутренним объектом (в моем примере Bet, SingleBet [])! – valerio
Я говорил, что вся эта вещь POJO будет реализована с использованием шаблона модуля, если это возможно. http://addyosmani.com/resources/essentialjsdesignpatterns/book/#modulepatternjavascript Я никогда не пытался json-ize, хотя – argentum47