目前我遇到的问题似乎很愚蠢,但我不知道答案。
我正在尝试访问此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...
欢迎任何建议,我试图在javascript / Jquery中访问它。
感谢您提前帮助!
答案 0 :(得分:3)
我假设数据采用这种格式(注意字符串文字):
var custom_fields = {
"28246": "5123,5124,5125"
}
如果是这种情况,您可以使用String.split。 在你的情况下,它将是这样的:
const values = custom_fields['28246'].split(',');
键28246
的值现在作为数组存储在新变量values
中:
['5123','5124','5125']
如果要将所有值解析为整数,建议使用Array.map:
const valuesAsInt = custom_fields['28246'].split(',').map(value => parseInt(value);
这将导致这一点:
[5123, 5124, 5125]
免责声明:使用较新的ECMAScript功能(如Array.map)时,请确保使用支持此功能的浏览器包含polyfill。
答案 1 :(得分:0)
您可以使用split函数访问它,它会将其转换为数组,然后从该数组中获取值,如下面的代码。
var data = {
"28246": '5123,5124,5125'
}
var arr = data['28246'].split(',');
$.each(arr, function( index, value ) {
console.log(value);
});
答案 2 :(得分:0)
您可以按','拆分并使用array.map和' +'将每个元素转换为整数。操作者:
var custom_fields =
{
"28246": "5123,5124,5125"
}
custom_fields["28246"] = custom_fields["28246"].split(',').map(el => +el);
console.log(custom_fields);
console.log(custom_fields["28246"][0], custom_fields["28246"][1], custom_fields["28246"][2]);