当前位置: 首页 > 知识库问答 >
问题:

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

秦信瑞
2023-03-14

我想在我的JS项目中使用类似Java-POJO的类:只有私有字段,getters和setters。

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;
}

}

我会在JSON字符串中转换我的类似Java-POJO的类,以将其发送到服务器。我不能使用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;
}

...但是在我花了很多时间写它之前,我想问你是否存在一种更好的方法来转换JSON中的Java-POJO类对象。谢谢。

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

共有1个答案

王刚毅
2023-03-14

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

this.toJSON = function() {
    return JSON.stringify({
        homeTeam: homeTeam,
        awayTeam: awayTeam,
        id: id,
        // etc...
    });
}
 类似资料:
  • 我尝试使用DTO到JSON(在JSON文件中写入)和JSON到DTO(从JSON文件中读取)作为常用方法(不同pojo写入/读取操作使用的通用方法) 为了作为通用方法使用,我使用返回类型作为对象。 在我的代码下面 提前道谢。

  • 问题内容: 我只是想找到一种方法来将json响应(从REST API)转换为POJO(在android中使用),这样我就可以将接收到的数据使用到我的应用程序中了,因为使用Map不会足够m接收有点复杂,包含3个级别的数组(数组内部的数组在数组内部的数组)。 我正在使用Dio库进行api调用,我可以成功进行API调用,并在控制台上毫无问题地打印数据。谁能协助我达成目标? 以下是我得到的答复。 问题答案

  • 问题内容: 我必须将我们的j2ee应用程序与REST Web服务集成在一起。我想使用JBoss的RestEasy JAX- RS实现。Web服务返回JSON格式的数组。我有这段代码: 我可以将此“响应”对象映射到使用RestEasy吗?谢谢 问题答案: 如果您的JSON提供程序能够转换为适当的实体,那么可以。您在代码中调用的方法具有重载的版本,该版本接受将结果转换为的实体类。由于序列化某些集合的实

  • 问题内容: 我有以下字符串: 如何使用Google / GSON将其转换为Java POJO? 问题答案: 通过使用http://www.jsonschema2pojo.org/或通过在Studio中添加插件(https://github.com/Hexara/Json2Pojo)生成POJO 现在添加依赖项: 将您的json或字符串转换为POJO

  • 问题内容: 我打算通过将其编码为JSON来发送充满数据的Javascript数组对象。任何好的jQuery插件吗? 在Java端,将JSON解析为Java数组的标准方法是什么? 总体流程如下: Javascript会在当前页面上编译一堆数据并将其存储在数组中。 数组对象编码为JSON。 Java代码保存JSON。 对每个页面重复执行并用Java代码编译成功的JSON。 Java代码向服务器提交一个

  • 我正在尝试将JSON转换为POJO类。这个JSON是我从第三方REST API调用得到的,我想把它转换成POJO类。为此,我使用jackson databind jar,下面是我代码的一部分。 这里现在不是POJO类,我声明了Object类型的ModelObjcet变量,我的问题是我们是否需要在将JSON转换为POJO之前创建带有必填字段和getter setter方法的POJO类? 如果是,那么