Javascript 如何访问每个键具有多个值的JSON对象?

Javascript 如何访问每个键具有多个值的JSON对象?,javascript,jquery,json,Javascript,Jquery,Json,现在我遇到了一个看起来很愚蠢的问题,但我不知道它的答案 我正在尝试访问此JSON对象: var custom_fields = { "28246": 5123,5124,5125 } 我希望从该键获取每个值。如果它是一个嵌套对象,我会知道如何访问它,但这并不令人遗憾(它来自一个API,我无法更改它的JSON响应) 我已经尝试了以下内容: for (var key in custom_fields) { if (custom_fields.hasOwnProperty(key

现在我遇到了一个看起来很愚蠢的问题,但我不知道它的答案

我正在尝试访问此JSON对象:

 var custom_fields = 
 {
   "28246": 5123,5124,5125
 }
我希望从该键获取每个值。如果它是一个嵌套对象,我会知道如何访问它,但这并不令人遗憾(它来自一个API,我无法更改它的JSON响应)

我已经尝试了以下内容:

for (var key in custom_fields) {
   if (custom_fields.hasOwnProperty(key)) {
      console.log(key + " -> " + custom_fields[key]);
    }
}
这里的问题是结果会是这样的:

1 -> 5
2 -> 1
3 -> 2
4 -> 3
5 -> ,
6 -> 5
...etc...
const values = custom_fields['28246'].split(',');
欢迎您提出任何建议,我正在尝试使用javascript/Jquery访问它


谢谢你的帮助

我假设数据采用这种格式(请注意字符串文字):

如果是这样,您可以使用。 在您的情况下,可能是这样的:

1 -> 5
2 -> 1
3 -> 2
4 -> 3
5 -> ,
6 -> 5
...etc...
const values = custom_fields['28246'].split(',');
它们的值key
28246
现在以数组形式存储在新变量
values
中:

['5123','5124','5125']
如果要将所有值解析为整数,我建议使用:

这将导致:

[5123, 5124, 5125]

免责声明:当使用较新的ECMAScript功能(如Array.map)时,请确保使用支持此功能的浏览器或包含多边形填充。

您可以使用拆分函数访问它,该函数将其转换为数组,然后从该数组中获取值,如下代码所示

var data = {
  "28246": '5123,5124,5125'
}
var arr = data['28246'].split(',');
$.each(arr, function( index, value ) {
  console.log(value);
});

可以按“,”拆分,并使用array.map和“+”运算符将每个元素转换为整数:

var自定义_字段=
{
"28246": "5123,5124,5125"
}
自定义_字段[“28246”]=自定义_字段[“28246”].split(',').map(el=>+el);
console.log(自定义_字段);

log(自定义_字段[“28246”][0],自定义_字段[“28246”][1],自定义_字段[“28246”][2])它只是不正确json@Faly我也这么认为,但必须有另一种方法,例如将逗号分隔的结果连接起来。您知道怎么做吗?如果512351245125部分是一个类似“512351245125”的字符串,我们可以做一些事情您的变量“custom_fields”是从API接收JSON的准确示例吗?这三个整数应该是一个数组。@Faly是的,有点小错误,抱歉。谢谢你的帮助非常感谢,我很惭愧我忘记了.split()方法。无论如何,我是否应该在API中报告这一错误,你怎么看?如果值列表没有用字符串文字包装,它就不是有效的JSON(你可以很容易地使用诸如jsonlint.com之类的工具进行检查),因此在API中肯定是一个错误。嗨,我有一个类似的问题,但我有字符串作为值,例如['yes,allowed','no,notallowed']。问题是“我的值”也包含逗号,而“拆分”只会拆分单个值。有什么办法可以避免吗?谢谢你的回复,如果我能接受两个答案,我会接受,因为这一个也是正确的