gpt4 book ai didi

javascript - 使用javascript,如何转换为JSON、类似Java-POJO的类?

转载 作者:行者123 更新时间:2023-12-03 11:39:40 24 4
gpt4 key购买 nike

我想在我的 JS 项目中使用类似 Java-POJO 的类:仅私有(private)字段、getter 和 setter。

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 的类转换为 JSON 字符串,以将其发送到服务器。我无法使用 JSON.stringify(myClass) 因为这些字段是私有(private)的。所以我想使用像这样的递归方法......

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。谢谢。

更新#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;
}

最佳答案

我能想到的唯一简单的方法是添加导出方法:

this.toJSON = function() {
return JSON.stringify({
homeTeam: homeTeam,
awayTeam: awayTeam,
id: id,
// etc...
});
}

关于javascript - 使用javascript,如何转换为JSON、类似Java-POJO的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26338910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com