Javascript 角度-将Jackson输出转换为JSON

Javascript 角度-将Jackson输出转换为JSON,javascript,angularjs,json,rest,jackson,Javascript,Angularjs,Json,Rest,Jackson,我正在使用的服务器将REST格式从纯JSON更改为: { "removedVertices": [ { "id": "1", "info": { "host": "myhost", "port": "1111" }, "n

我正在使用的服务器将REST格式从纯JSON更改为:

    {           
        "removedVertices": [
            {
                "id": "1",
                "info": {
                    "host": "myhost",
                    "port": "1111"
                },
                "name": "Roy",
                "type": "Worker"
            }
        ],
        "id": "2",
        "time": 1481183401573
    }
要更改格式,请执行以下操作:

    {
          "removedVertices": [
          "java.util.ArrayList",
           [
                   {
                         "id": "1",
                          "info": [
                                "java.util.HashMap",
                                {
                                    "host": "myhost",
                                    "port": "1111"
                                }
                         ]
                         "name": "Roy",
                         "type": "Worker",                             
                    }                       
            ]
            "id": "2",
            "time": 1482392323858
    }

如何才能像以前在Angular/Javascript中那样解析它?

我看到的主要区别是,在数组中,索引0处有一个额外的字符串元素

如果你总是得到相同的结构,你可以这样做:

function jacksonToJson(jackson) {
    jackson.removedVertices.splice(0, 1);

    jackson.removedVertices.forEach((rmVert) => {
      rmVert.info.splice(0, 1);
    });

    return jackson;
}

我看到的主要区别是,在数组中,索引0处有一个额外的字符串元素

如果你总是得到相同的结构,你可以这样做:

function jacksonToJson(jackson) {
    jackson.removedVertices.splice(0, 1);

    jackson.removedVertices.forEach((rmVert) => {
      rmVert.info.splice(0, 1);
    });

    return jackson;
}

如果api应该是restful的,那么服务器不应该返回none纯json结果。我认为服务器站点需要解决这个问题

我认为这是因为服务器启用了多态类型处理特性。 读和读


禁用该功能,您将获得与普通json相同的结果。

如果api应为restful,则服务器不应返回无普通json结果。我认为服务器站点需要解决这个问题

我认为这是因为服务器启用了多态类型处理特性。 读和读


禁用该功能,您将得到与普通json相同的结果。

假设只有数组受到影响,我将使用并编写递归函数来删除Jackson类型

function jackson2json(input) {
  return _.mapObject(input, function(val, key) {
    if (_.isArray(val) && val.length > 1) {
      // discard the Jackson type and keep the 2nd element of the array
      return val[1];   
    }
    else if (_.isObject(val)) {
      // apply the transformation recursively
      return jackson2json(val);
    }
    else {
      // keep the value unchanged (i.e. primitive types)
      return val;
    }
  });
} 

假设只有数组受到影响,我将使用并编写一个递归函数来删除Jackson类型

function jackson2json(input) {
  return _.mapObject(input, function(val, key) {
    if (_.isArray(val) && val.length > 1) {
      // discard the Jackson type and keep the 2nd element of the array
      return val[1];   
    }
    else if (_.isObject(val)) {
      // apply the transformation recursively
      return jackson2json(val);
    }
    else {
      // keep the value unchanged (i.e. primitive types)
      return val;
    }
  });
} 

谢谢你的重播。我正在寻找更通用的解决方案,因为这些类型也将出现在其他节点上,而不仅仅是“removedVertices”,谢谢您的重播。我正在寻找更通用的解决方案,因为这些类型也将出现在其他节点上,而不仅仅是“RemovedVertex”