Javascript 角度-将Jackson输出转换为JSON
我正在使用的服务器将REST格式从纯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
{
"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”