【问题标题】:How to get values without key from JSON object in javascript [duplicate]如何从javascript中的JSON对象获取没有键的值[重复]
【发布时间】:2019-04-25 20:23:04
【问题描述】:

我有一个如下所示的 JSON 对象,我想检索数组中的值而无需传递密钥

 var myData={
  "VALUEX": "GrandTotal",
  "VALUEX2": "GrandTotal",
  "Jan-2018": 25,
  "Feb-2018": 54.5,
  "Mar-2018": 84,
  "Apr-2018": 45.2,
  "May-2018": 46,
  "Jun-2018": 76.5,
  "Jul-2018": 107,
  "Aug-2018": 138,
  "Sep-2018": 168.5,
  "Oct-2018": 199,
  "Nov-2018": 229.5,
  "Dec-2018": 260
}

【问题讨论】:

  • Object.values?
  • 另外,there's no such thing as a "JSON Object"。如果你有一个对象或数组,那么你就有一个对象或数组,句号。 JSON 格式是一种在字符串中表示对象的方法,例如const myJSON = '{"foo":"bar"}'。如果不涉及字符串、序列化或反序列化,则也不涉及 JSON。
  • Object.values() 对我来说是完美的答案。我一直在寻找一条线解决方案。我知道的其他方法如下 ------ function getJSONvalues(jsonObject){ var valuesArray=[]; Object.keys(jsonObject).forEach(function(key) { valuesArray.push(jsonObject[key]); });返回值数组; }

标签: javascript json


【解决方案1】:

有几种方法可以在不使用key 的情况下获取对象的值:

使用 Object.values()

var myData = {"VALUEX":"GrandTotal","VALUEX2":"GrandTotal","Jan-2018":25,"Feb-2018":54.5,"Mar-2018":84,"Apr-2018":45.2,"May-2018":46,"Jun-2018":76.5,"Jul-2018":107,"Aug-2018":138,"Sep-2018":168.5,"Oct-2018":199,"Nov-2018":229.5,"Dec-2018":260}
console.log(Object.values(myData));

使用 Object.entries()

var myData = {"VALUEX":"GrandTotal","VALUEX2":"GrandTotal","Jan-2018":25,"Feb-2018":54.5,"Mar-2018":84,"Apr-2018":45.2,"May-2018":46,"Jun-2018":76.5,"Jul-2018":107,"Aug-2018":138,"Sep-2018":168.5,"Oct-2018":199,"Nov-2018":229.5,"Dec-2018":260}
var arrayVal = Object.entries(myData).map(item => item[1]);
console.log(arrayVal);

使用 Object.keys()

var myData = {"VALUEX":"GrandTotal","VALUEX2":"GrandTotal","Jan-2018":25,"Feb-2018":54.5,"Mar-2018":84,"Apr-2018":45.2,"May-2018":46,"Jun-2018":76.5,"Jul-2018":107,"Aug-2018":138,"Sep-2018":168.5,"Oct-2018":199,"Nov-2018":229.5,"Dec-2018":260}
var arrayVal = [];
Object.keys(myData).forEach(key => arrayVal.push(myData[key]));
console.log(arrayVal);

【讨论】:

  • 谢谢。它对我有用。我有很多选择,但想要一个像这样短的。
  • 我开发了这样的自定义函数 function getJSONvalues(jsonObject){ var valuesArray=[]; Object.keys(jsonObject).forEach(function(key) { valuesArray.push(jsonObject[key]); });返回值数组; }
  • 哪一个性能更好,更好用?
【解决方案2】:

您可以只使用以下符号:

myData["VALUEX"]

这将转换为“GrantTotal”。

要在键及其值之间进行迭代,您可以执行以下操作:

for(var key in myData){
    if(myData.hasOwnProperty(key){
        console.log(myData[key]);
    } 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-07
    • 2018-02-05
    • 2020-07-17
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多