在AngularJS中获取不同的JSON对象结构

时间:2013-12-09 11:34:06

标签: json angularjs

我正在研究AngularJS。 在项目的这一部分中,我的目标是在填写带有一些细节值的表单后获取JSON结构。

这是我简单形式的小提琴:Fiddle

使用表单我将查询KairosDB,即我的NoSql数据库,我将通过JSON对象查询它的数据。表单的结构是这样的:

  • 名称
  • 一定数量的标记标记ID (例如“ch”)和标记值(例如“932”)
  • 一定数量的聚合器来操纵来自数据库的数据
  • 开始时间戳结束时间戳(现在它们是静态的,只包含在最终的JSON对象中)

填写此表单后,我将使用我的代码获取此JSON对象:

{
    "metrics": [
    {
      "tags": [
        {
          "id": "ch",
          "value": "932"
        },
        {
          "id": "ch",
          "value": "931"
        }
      ],
      "aggregators": {
        "name": "sum",
        "sampling": [
          {
            "value": "1",
            "unit": "milliseconds",
            "type": "SUM"
          }
        ]
      }
    }
  ],
  "cache_time": 0,
  "start_absolute": 123,
  "end_absolute": 1234

}

不幸的是,KairosDB接受了不同的结构,正如您所看到的,Tag id“ch”之前没有“id”字符串,或者例如,来自相同标记id的Tag值被组合在一起

{
  "metrics": [
    {
      "tags": {
        "ch": [
          "932",
          "931"
        ]
      },
      "name": "AIENR",
      "aggregators": [
        {
          "name": "sum",
          "sampling": {
            "value": "1",
            "unit": "milliseconds"
          }
        }
      ]
    }
  ],
  "cache_time": 0,
  "start_absolute": 1367359200000,
  "end_absolute": 1386025200000
}

我的问题是:有没有办法获得像Kairos DB用Angular JS表单接受的JSON结构?谢谢大家。 我已经看到这个topic与我的相似,但它不在AngularJS中。

1 个答案:

答案 0 :(得分:1)

就个人而言,我会在后端进行重构工作 - 让服务器接口发送和接收数据做什么操作 - 否则你最终需要在Angular中的任何想要使用该数据集的位置重构数据。

在后端执行此操作会将其放在单个访问点中。

当然,您可以在Angular中执行此操作,只需使用数组副本替换userString方法中的submitData,并使用新格式的数据替换tags部分,同样重构收到回复后,将结果返回正确的格式。