对不起,我想不出更好的词来表达我的问题。
所以问题是说我有一个嵌套的json,出于某种原因,我想获取一个嵌套键值对Object的值并将其放在外面。
Json我有
DataSource= [
{
"a": 1,
"name": "jack",
"version": 1,
"Id": "39da",
"active": false,
"userId": "jack_user",
"properties": [
{
"id": 7080,
"key": "country",
"value": "in",
},
{
"id": 7081,
"key": "state",
"value": "xyz",
},
]}]
我想要的杰森:
DataSource= [
{
"a": 1,
"name": "jack",
"version": 1,
"Id": "39da",
"active": false,
"userId": "jack_user",
"country": "in"
"properties": [
{
"id": 7080,
"key": "country",
"value": "in",
},
{
"id": 7081,
"key": "state",
"value": "xyz",
},
]}]
使用以下代码,我可以遍历整个JSON。但是,我无法从Properties Array中选择对象。
for (var i = 0; i < this.DataSource.length; i++) {
var tempDataSource = this.DataSource;
console.log(tempDataSource );
答案 0 :(得分:0)
您可以这样做。 在这里,我假设数据数组只有一个对象。
const data = [
{
"a": 1,
"name": "jack",
"version": 1,
"Id": "39da",
"active": false,
"userId": "jack_user",
"properties": [
{
"id": 7080,
"key": "country",
"value": "in",
},
{
"id": 7081,
"key": "state",
"value": "xyz",
},
]
}
]
data[0].properties.forEach(obj => {
if (data[0][obj.key] == 'country') {
data[0][obj.key] = obj.value
}
})
console.log(data)
输出-
[
{
"a": 1,
"name": "jack",
"version": 1,
"Id": "39da",
"active": false,
"userId": "jack_user",
"properties": [
{
"id": 7080,
"key": "country",
"value": "in"
},
{
"id": 7081,
"key": "state",
"value": "xyz"
}
],
"country": "in"
}
]
答案 1 :(得分:-1)
您可以在下面尝试我的代码段
let obj = [{
"a": 1,
"name": "jack",
"version": 1,
"Id": "39da",
"active": false,
"userId": "jack_user",
"properties": [{
"id": 7080,
"key": "country",
"value": "in",
},
{
"id": 7081,
"key": "state",
"value": "xyz",
},
]
}];
console.log('berfore', obj);
obj[0][obj[0].properties[0].key] = obj[0].properties[0].value;
console.log('after', obj);