从Javascript检索JSON对象值

从Javascript检索JSON对象值,javascript,json,Javascript,Json,我不熟悉Javascript和JSON。我想通过Javascript获得以下JSON值。我需要检索“login”值并分别将“a”、“d”和“c”相加。我设法获得了“login”值,但我不知道如何检索“a”、“d”和“c”值 JSON: 您可以使用数组方法和。jQuery不是很必要 var retrieved = data.map(function(v) { var ret = v.weeks.reduce(function(a, b) { return { a: a.a

我不熟悉Javascript和JSON。我想通过Javascript获得以下JSON值。我需要检索“login”值并分别将“a”、“d”和“c”相加。我设法获得了“login”值,但我不知道如何检索“a”、“d”和“c”值

JSON:


您可以使用数组方法和。jQuery不是很必要

var retrieved = data.map(function(v) {
  var ret = v.weeks.reduce(function(a, b) {
    return {
      a: a.a + b.a,
      d: a.d + b.d,
      c: a.c + b.c
    }
  })
  ret.login = v.author.login
  return ret
})

您可以使用数组方法和。jQuery不是很必要

var retrieved = data.map(function(v) {
  var ret = v.weeks.reduce(function(a, b) {
    return {
      a: a.a + b.a,
      d: a.d + b.d,
      c: a.c + b.c
    }
  })
  ret.login = v.author.login
  return ret
})

试试这个,它会起作用的:

var data = [
  {
    "total": 2,
    "weeks": [
      {
        "w": 1214092800,
        "a": 0,
        "d": 0,
        "c": 0
      },
      {
        "w": 1474761600,
        "a": 0,
        "d": 0,
        "c": 0
      },
      {
        "w": 1476576000,
        "a": 0,
        "d": 0,
        "c": 0
      }
    ],
    "author": {
      "login": "ramiro"
    }
  }
];
JSON:

var data = [
  {
    "total": 2,
    "weeks": [
      {
        "w": 1214092800,
        "a": 0,
        "d": 0,
        "c": 0
      },
      {
        "w": 1474761600,
        "a": 0,
        "d": 0,
        "c": 0
      },
      {
        "w": 1476576000,
        "a": 0,
        "d": 0,
        "c": 0
      }
    ],
    "author": {
      "login": "ramiro"
    }
  }
];
1。用于环路内

var weekData = data[0].weeks; 
for (var i in weekData) {
 console.log(data[0].weeks[i].a,data[0].weeks[i].d,data[0].weeks[i].c);
}
2。使用数组映射方法

var weekData = data[0].weeks; 

var returnData = weekData.map(function(e) {
return {
          a: e.a,
          d: e.d,
          c: e.c
        }
})

console.log(returnData);

工作小提琴:试试这个它会工作的:

var data = [
  {
    "total": 2,
    "weeks": [
      {
        "w": 1214092800,
        "a": 0,
        "d": 0,
        "c": 0
      },
      {
        "w": 1474761600,
        "a": 0,
        "d": 0,
        "c": 0
      },
      {
        "w": 1476576000,
        "a": 0,
        "d": 0,
        "c": 0
      }
    ],
    "author": {
      "login": "ramiro"
    }
  }
];
JSON:

var data = [
  {
    "total": 2,
    "weeks": [
      {
        "w": 1214092800,
        "a": 0,
        "d": 0,
        "c": 0
      },
      {
        "w": 1474761600,
        "a": 0,
        "d": 0,
        "c": 0
      },
      {
        "w": 1476576000,
        "a": 0,
        "d": 0,
        "c": 0
      }
    ],
    "author": {
      "login": "ramiro"
    }
  }
];
1。用于环路内

var weekData = data[0].weeks; 
for (var i in weekData) {
 console.log(data[0].weeks[i].a,data[0].weeks[i].d,data[0].weeks[i].c);
}
2。使用数组映射方法

var weekData = data[0].weeks; 

var returnData = weekData.map(function(e) {
return {
          a: e.a,
          d: e.d,
          c: e.c
        }
})

console.log(returnData);

工作fiddle:

使用数组过滤器不是一个解决方案…您可以尝试查看weekData的功能…weekData和returnData的结果是相同的这很好…我认为这是目前为止最好的方法now@PankajKumar非常感谢你的夸奖。如果你认为这个答案对其他人有利,你可以选择它。使用数组过滤器不是一个解决方案…您可以尝试查看weekData的功能…weekData和returnData的结果是相同的。这很好…我认为这是目前为止最好的方法now@PankajKumar非常感谢你的夸奖。如果你认为这个答案对别人有利,你可以把它投给别人。