将树序列化/反序列化为Json

时间:2014-08-11 09:44:44

标签: c# javascript json angularjs

我在我的服务器上使用.Net Framework和WebApi,在我的客户端上使用Javascript / AngularJs。我想将带引用的树转移到我的客户端。我找到了一种方法将它送到客户端,我只是在Newtonsoft Json设置了PreserveReferencesHandling.Objects。

杰森看起来像这样:

{
    "$id": "1",
    "id": 1,
    "revisionNumber": 0,
    "name": "Revision 0",
    "parentRevisionNode": null,
    "nextRevisionNode": null,
    "prevRevisionNode": null,
    "childRevisionNodes": [
      {
          "$id": "2",
          "id": 2,
          "revisionNumber": 0,
          "name": "Node 1",
          "parentRevisionNode": {
              "$ref": "1"
          },
          "nextRevisionNode": null,
          "prevRevisionNode": null,
          "childRevisionNodes": [
            {
                "$id": "3",
                "id": 3,
                "revisionNumber": 0,
                "name": "Node 1.1",
                "parentRevisionNode": {
                    "$ref": "2"
                },
                "nextRevisionNode": null,
                "prevRevisionNode": null,
                "childRevisionNodes": null,
                "data": {
                    "$id": "4",
                    "id": 3,
                    "revisionNumber": 0,
                    "text": "Data 1.1",
                    "parentRevisionNode": {
                        "$ref": "3"
                    },
                    "nextRevisionNode": null
                }
            },
            {
                "$id": "5",
                "id": 4,
                "revisionNumber": 0,
                "name": "Node 1.2",
                "parentRevisionNode": {
                    "$ref": "2"
                },
                "nextRevisionNode": null,
                "prevRevisionNode": null,
                "childRevisionNodes": null,
                "data": {
                    "$id": "6",
                    "id": 4,
                    "revisionNumber": 0,
                    "text": "Data 1.2",
                    "parentRevisionNode": {
                        "$ref": "5"
                    },
                    "nextRevisionNode": null
                }
            }
          ],
          "data": {
              "$id": "7",
              "id": 2,
              "revisionNumber": 0,
              "text": "Data 1",
              "parentRevisionNode": {
                  "$ref": "2"
              },
              "nextRevisionNode": null
          }
      }
    ],
    "data": {
        "$id": "8",
        "id": 1,
        "revisionNumber": 0,
        "text": "Data 0",
        "parentRevisionNode": {
            "$ref": "1"
        },
      "nextRevisionNode": null
    }
}

我找到了一个用Object替换$ id和$ ref的函数。这很好。

现在我希望将对象树返回到服务器。但是我在JS Side圈出引用时遇到错误。然后我想我可以用同样的方式回来,用$ id和$ ref转换对象引用。

但Angulars $资源削减了所有$属性......

任何人都知道如何从/向服务器来回获取数据?

提前致谢

Greeetings

Ronny Gerndt

0 个答案:

没有答案