Javascript 如何创建自定义JSON数据结构?

Javascript 如何创建自定义JSON数据结构?,javascript,json,logic,Javascript,Json,Logic,包含100个对象的JSON数据结构的输出应如下所示: [{ "Value": "Sens1_001", "Parent": Null, "Child": { "Value": "Sens2_068", "Parent":"Sens1_001", "Child" : { "Value": "Sens3_034", "Parent": "Sen2_068",

包含100个对象的JSON数据结构的输出应如下所示:

[{
    "Value": "Sens1_001",
    "Parent": Null,
    "Child": {
        "Value": "Sens2_068",
        "Parent":"Sens1_001",
        "Child" : {
            "Value": "Sens3_034",
            "Parent": "Sen2_068",
            "Child": null,
            "z_cordinate": 5
                  },
        "z_cordinate": 0
            },
        "z_cordonate": -5
    },
{
    "Value": "Sens1_002",
    "Parent": Null,
    "Child": {
        "Value": "Sens2_037",
        "Parent":"Sens1_002",
        "Child" : {
            "Value": "Sens3_099",
                              "Parent": "Sen2_037",
                              "Child": null,
                              "z_cordinate": 5
                   },
             "z_cordinate": 0
             },
  "z_cordonate": -5
},
{
   "Value": "Sens1_003",
    "Parent": Null,
    "Child": {
        "Value": "Sens2_012",
        "Parent":"Sens1_003",
        "Child" : {
            "Value": "Sens3_054",
            "Parent": "Sen2_012",
            "Child": null,
            "z_cordinate": 5
                  },
        "z_cordinate": 0
             },   
        "z_cordonate": -5
},
.
.
. // till 100th object
{
    "Value": "Sens1_100",
    "Parent": Null,
    "Child": {
        "Value": "Sens2_001",
        "Parent":"Sens1_100",
        "Child" : {
            "Value": "Sens3_021",
            "Parent": "Sen2_001",
            "Child": null,
            "z_cordinate": 5
                  },
    "z_cordinate": 0
             },
    "z_cordonate": -5
}]  
注意:我编辑了样本外观对象,请再看一次,我更改了尾端大括号,使其看起来更像一个数组而不是普通对象。JSON是次要的,我的数组应该符合我的目的

目的:


如何访问对象X.parent.child时尚。我有一些知识,但不足以构造这个对象。我还计划以两种方式访问对象:Grapndparent-Parent-Child和Me-Parent-祖父母。我怎么能这么做?对象的父子关系应该是有意义的,而不是随机的,而且父对象可以有多个子对象。

因为所有的“value”键都是唯一的,所以可以将其作为字典键。 因此,将其设计为:

{
 "Sens1_001": {
               "value": "Sens1_001",
               "parent": null,
               "child": "Sen2_068",
               "z_coordinate": 5
              },
 "Sens2_068": {
               "value": "Sens2_068",
               "parent": "Sens1_001",
               "child": "Sen3_098",
               "z_coordinate": -5
              }
 .
 .
 .
}
一旦这本字典“dict”准备好,如果你知道祖父母的价值,那么:

grandparent = dict[value];
parent = dict[grandparent[child]];
child = dict[parent[child]];
同样,如果你知道孩子的价值

child = dict[value];
parent = dict[child[parent]];
grandparent = dict[parent[parent]];

如果您仍然无法获取它,请告诉我。

由于所有“value”键都是唯一的,因此您可以将其作为字典键。 因此,将其设计为:

{
 "Sens1_001": {
               "value": "Sens1_001",
               "parent": null,
               "child": "Sen2_068",
               "z_coordinate": 5
              },
 "Sens2_068": {
               "value": "Sens2_068",
               "parent": "Sens1_001",
               "child": "Sen3_098",
               "z_coordinate": -5
              }
 .
 .
 .
}
一旦这本字典“dict”准备好,如果你知道祖父母的价值,那么:

grandparent = dict[value];
parent = dict[grandparent[child]];
child = dict[parent[child]];
同样,如果你知道孩子的价值

child = dict[value];
parent = dict[child[parent]];
grandparent = dict[parent[parent]];

如果你还不明白,告诉我。

因为json本身就是一个javascript数组,所以你可以像访问数组一样访问json对象

<script>
  var json = [
        {'SMAK' : 1, 'parent': 'i m perent 1', 'child' : 'i m child'}, 
        {'SMAK' : 2, 'parent': 'i m perent 2', 'child' : 'i m child'}, 
        {'SMAK' : 3, 'parent': 'i m perent 3', 'child' : 'i m child'}, 
        {'SMAK' : 4, 'parent': 'i m perent 4', 'child' : 'i m child'}        
      ]
  console.log(json[0]);
  console.log(json[1].parent);
  console.log(json[3]['child']);
</script>

var json=[
{'SMAK':1,'parent':'imperent 1','child':'imchild'},
{'SMAK':2,'parent':'imperent 2','child':'imchild'},
{'SMAK':3,'parent':'imperent 3','child':'imchild'},
{'SMAK':4,'parent':'imperent 4','child':'imchild'}
]
log(json[0]);
log(json[1].parent);
log(json[3]['child']);

因此,如果您知道索引,您可以访问该对象的任何属性

因为json本身就是一个javascript数组,所以您可以像访问数组一样访问json对象

<script>
  var json = [
        {'SMAK' : 1, 'parent': 'i m perent 1', 'child' : 'i m child'}, 
        {'SMAK' : 2, 'parent': 'i m perent 2', 'child' : 'i m child'}, 
        {'SMAK' : 3, 'parent': 'i m perent 3', 'child' : 'i m child'}, 
        {'SMAK' : 4, 'parent': 'i m perent 4', 'child' : 'i m child'}        
      ]
  console.log(json[0]);
  console.log(json[1].parent);
  console.log(json[3]['child']);
</script>

var json=[
{'SMAK':1,'parent':'imperent 1','child':'imchild'},
{'SMAK':2,'parent':'imperent 2','child':'imchild'},
{'SMAK':3,'parent':'imperent 3','child':'imchild'},
{'SMAK':4,'parent':'imperent 4','child':'imchild'}
]
log(json[0]);
log(json[1].parent);
log(json[3]['child']);


因此,如果您知道索引,您可以访问该对象的任何属性

什么?请您重新表述这个问题或添加一些细节以使其易于理解,好吗?我已经编辑了这个问题,请检查并让我知道您是否正在寻找任何无效Json的进一步细节,要拥有一个数组,您必须使用
[,]
而不是
{}
对我来说,听起来您只是想创建一个包含对象的数据结构,不是真正的JSON。无论哪种方式,您都需要提供更多信息。你到底有什么问题?请发一些代码。签出这个包,我想可以帮你。什么?请您重新表述这个问题或添加一些细节以使其易于理解,好吗?我已经编辑了这个问题,请检查并让我知道您是否正在寻找任何无效Json的进一步细节,要拥有一个数组,您必须使用
[,]
而不是
{}
对我来说,听起来您只是想创建一个包含对象的数据结构,不是真正的JSON。无论哪种方式,您都需要提供更多信息。你到底有什么问题?请发一些代码。签出这个包,我想可以帮你。dict是JSON字典对象。使用值作为键是解决方案。@GautamJeyaraman,我对你的编辑感到困惑。您能否提供一个与您讨论的内容相关的JSFIDLE链接。顺便说一句,谢谢你的回复。可能它不应该是JSON,但我想让我的对象为我的目的服务。请再复习一遍这个问题,我已经根据我的要求编辑了。a我看到了编辑过的问题,答案仍然是一样的。我很快就会给你一个JSFIDLE示例。dict是JSON字典对象。你使用值作为键是解决方案。@GautamJeyaraman,我对你的编辑感到困惑。您能否提供一个与您讨论的内容相关的JSFIDLE链接。顺便说一句,谢谢你的回复。可能它不应该是JSON,但我想让我的对象为我的目的服务。请再复习一遍这个问题,我已经根据我的要求编辑了。a我看到了编辑过的问题,答案仍然是一样的。我很快会给你一个JSFIDLE示例。谢谢你的回复,但是我的对象关系应该像父母和孩子一样有意义谢谢你的回复,但是我的对象关系应该像父母和孩子一样有意义