背景
我有一个春季MVC
我有一个有角度的前端(按下按钮)从后端获取定义,将其名称更改为“NewName”,然后尝试用新名称将其放回。
现行代码
$scope.simpleSaveDefinition = function() {
Definition.simpleGet({uuid:$scope.definition.uuid}, function (result) {
result.name = "NewName";
var stringResult = JSOG.stringify(result);
Definition.update({'uuid':$scope.definition.uuid}, stringResult);
});
}
它正在呼叫:
释义服务js
'simpleGet': {
method: 'GET', isArray: false,
headers: {
"Authorization": "ABC"
}, url: "api/v1/definition/:uuid/deep",
transformResponse: function (data) {
return JSOG.parse(data);
}
},
'update': {method: 'PUT', headers: {"Authorization": "ABC"},
transformResponse: function (data) {
return JSOG.parse(data);
}
},
错误
Possibly unhandled rejection: {"data":{"timestamp":1529075556923,"status":400,"error":"Bad Request","message":"JSON parse error: Unresolved forward references for: ; nested exception is com.fasterxml.jackson.databind.deser.UnresolvedForwardReference: Unresolved forward references for: \n at [Source: (PushbackInputStream); line: 1, column: 5685]Object id [2] (for com.ibm.ispww.serviceregistry.domain.swagger.media.Schema) at [Source: (PushbackInputStream); line: 1, column: 3257], Object id [17] (for
...
(for com.myregistry.domain.assemblies.NamedObject) at [Source: (PushbackInputStream); line: 1, column: 5676].",
"path" : "/api/v1/definition/fac4e40b-8b41-4eca-94d2-6054ee2a0bd7"
}
所以,错误似乎是
JSOG.parse(result)
result.name = "NewNAME"
JSOG.stringify(result)
不会产生可接受的对象。
有趣的是,如果我删除这些步骤,只获取对象(从不解析)并返回它,它就会工作。
问题
是否有某种方法可以解析结果,编辑结果,然后将其解析并返回?看来JSOG并没有按照我预期的方式工作。