【问题标题】:Create nested JSON array创建嵌套 JSON 数组
【发布时间】:2016-04-05 22:53:03
【问题描述】:

我正在尝试创建一个 JSON 数组以将其发送到我的 Web 服务。这就是我的 json 的样子:

[{
  "tipus": 1,
  "proveidor": 3,
  "atributs": {
    "atribut":{
      "id": 1,
      "valor": 8
    },
    "atribut":{
      "id": 2,
      "valor": 500
    }
  }
}]

所以,我有两个通用值“tipus”和“proveidor”以及多个“属性”,每个“属性”由“id”和“valor”组成。

当我构造 json 时,我得到的是这个而不是我想要的:

[
2:{
  "tipus": 1,
  "proveidor": 3, 
1:{
      "id": 1,
      "valor": 8
  },
0:{
      "id": 2,
      "valor": 500
    }
}]

这就是我构建 json 的方式:

    // For every founded in $scope.atrb i need to create an 'atribut' element into my json
        $scope.a = [];
                            var key;
                            for(key in $scope.atrb){
                                var newField =  {
                                                "idatributs_actiu": $scope.atrb[key].idatributs_actiu, 
                                                "nomAtribut": $scope.atrb[key].nomAtribut, 
                                                "valor": $scope.atrb[key].valor,
                                                "idActiu": $routeParams.idTipusActiu,
                                                "value": "",
                                                "ordre": $scope.atrb[key].ordre,
                                                "idatributs_generics": $scope.atrb[key].idatributs_generics
                                            };
                                $scope.a.push(newField);
                            }
                            $scope.f = $scope.a;
                        });

var generics = {
                       "nom": $scope.nom,
                       "tipus": $routeParams.idTipusActiu,
                       "proveidor": $scope.proveidor.id
                   };
                   $scope.a.push(generics);

这是我的第一个有角度的项目,我不确定我是否正确构建了 json,基本上我使用数组来构建 json,但我不知道如何将它嵌套在 'atributs' 中.

主要思想是读取“泛型”属性,然后遍历“属性”并读取所有“属性”元素获取属性。

问候

【问题讨论】:

  • 您最初的JSON 结构并不完全正确。您应该将"atributs" 视为JSONArray 而不是JSONObject
  • 或者只是一个 JS 数组而不是 JSON 数组,因为 JSON 数组和 JSON 对象不存在。
  • 感谢您的指正,但我想您明白了 :)
  • 感谢@S4beR 和 Kevin B,但我怎么能用 angular 来做到这一点。我真的迷失了这个话题
  • @proktovief 只需使用 javascript 即可。这是非常基本的对象/数组生成。

标签: javascript arrays angularjs json slim


【解决方案1】:

就像 S4beR 和 Kevin B 告诉我的那样,我只需要做一个 JS 数组。这是在我的控制器中:

var obj = { generics: g, atributs: $scope.a };

g:它是一个具有通用属性的对象

$scope.a:这是一个包含所有“属性”对象的数组 我需要保存到的属性。

【讨论】:

    猜你喜欢
    • 2021-08-24
    • 1970-01-01
    • 2016-09-04
    • 2020-12-01
    • 2016-09-02
    • 1970-01-01
    • 2021-12-15
    • 2021-01-31
    相关资源
    最近更新 更多