代码之家  ›  专栏  ›  技术社区  ›  Rorschach

如何撤销我的JSOG。parse()以返回到API

  •  0
  • Rorschach  · 技术社区  · 8 年前

    背景

    我有一个春季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并没有按照我预期的方式工作。

    0 回复  |  直到 8 年前