繁体   English   中英

javascript 中 JSON 数组中的 JSON 对象

[英]JSON Objects in a JSON Array in javascript

我在 JSON 数组中处理 JSON 对象。 单击按钮后,我将 json 对象推送到如下数组中:

jsonArray.push({
    columnNameProperty: columnName,
    columnValueProerty: columnValue,
    id: column.id

});

我的结果数组如下所示:

[
 0:{
   columnNameProperty: "Name",
   columnValueProperty: "Nancy",
   id: "123"
 },
 1:{
   columnNameProperty: "Name",
   columnValueProperty: "Jene",
   id: "124"
 },
 2:{
   columnNameProperty: "Amount",
   columnValueProperty: "1000",
   id: "123"
 },
 3:{
   columnNameProperty: "State",
   columnValueProperty: "WA",
   id: "123"
 }
]

当我想根据 id 推送项目时,我该如何修改它。

[
  "123" : {
      "Name" : "Nancy",
      "Amount" : "1000",
      "State" : "WA"
 },
  "124" : {
      "Name" : "Jene"
 }
]

任何人都可以建议我如何以这种格式构建它。

@Amy 是正确的,这实际上不是有效的 javascript。 数组没有键。 所以你的例子

[
 0:{
   columnNameProperty: "Name",
   columnValueProperty: "Nancy",
   id: "123"
 },
 1:{
   columnNameProperty: "Name",
   columnValueProperty: "Jene",
   id: "124"
 }
]

真的看起来像这样

[
     {
       columnNameProperty: "Name",
       columnValueProperty: "Nancy",
       id: "123"
     },
     {
       columnNameProperty: "Name",
       columnValueProperty: "Jene",
       id: "124"
     }
]

如果您的目标是通过 id 检索元素,您可以创建一个循环遍历数组的函数,查找并返回具有给定 id 的对象。

或者,您可以创建一个哈希映射并通过其键访问每个值。 例如,给定这个对象:

let map = {
  "123" : {
      "Name" : "Nancy",
      "Amount" : "1000",
      "State" : "WA"
 },
  "124" : {
      "Name" : "Jene"
 }
}

您可以通过说map['123']来获取键“123”的值

为什么一定要使用数组? 对于您想要实现的目标,您可以设置一个对象,然后将更多对象插入其中。

var exampleObject={};

function onClick(){
exampleObject["123"]={"Name":"steve"}
}

我假设您正在尝试使用该方法稍后在数组中找到正确的对象?

您可以简单地遍历对象并在其中找到它:

for (var obj in exampleObject){

   if(obj==="123"){
       //do something
   }
}

能够通过创建 HashMap/Object 来实现所需的格式:

var id = column.id;
var mapObject = {}, editMap = {};
if(editMap.hasOwnProperty(id)){
    mapObject = editMap[id];
    mapObject[columnName] = grid[columnName];
    editMap[id] = mapObject;

}
else{
    mapObject[columnName] = [columnName];
    editMap[id] = mapObject;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM