2017-07-21 35 views
0

大家好我有一个问题。JSON使用javascript格式化

有了这个代码:

targetingIdeaService.get({selector: selector}, function (error, result) { 

var string = JSON.stringify(result) 
console.log(string) 

}) 

我得到这样的结果:

"totalNumEntries":700, 
"entries":[ 
{ 
"data":[ 
{ 
"key":"KEYWORD_TEXT", 
"value":{ 
"attributes":{ 
"xsi:type":"StringAttribute" 
}, 
"Attribute.Type":"StringAttribute", 
"value":"nike ddd8ea95" 
} 
}, 
{ 
"key":"COMPETITION", 
"value":{ 
"attributes":{ 
"xsi:type":"DoubleAttribute" 
}, 
"Attribute.Type":" DoubleAttribute", 
"value":"0.8726547440705715" 
} 
}, 
{ 
"key":"AVERAGE_CPC", 
"value":{ 
"attributes":{ 
"xsi:type":"MoneyAttribute" 
}, 
"Attribute.Type":"MoneyAttribute", 
"value":{ 
"ComparableValue.Type":"Money", 
"microAmount":"16769286" 
} 
} 
}, 
{ 
"key":"SEARCH_VOLUME", 
"value":{ 
"attributes":{ 
"x si:type":"LongAttribute" 
}, 
"Attribute.Type":"LongAttribute", 
"value":"5609289" 
} 
} 
] 
} 
] 
} 

而与此一个,我得到以下几点:

targetingIdeaService.get({selector: selector}, function (error, result) { 


var resultaten = result; 
var res = resultaten.entries; 
for(var i = 0; i < res.length; i++){ 
console.log(resultaten.entries[i]) 
} 



}) 

输出

{ data: 
    [ { key: 'KEYWORD_TEXT', value: [Object] }, 
    { key: 'COMPETITION', value: [Object] }, 
    { key: 'AVERAGE_CPC', value: [Object] }, 
    { key: 'SEARCH_VOLUME', value: [Object] } ] } 

现在我正在寻找以某种方式格式化JSON,它看起来像这个例子。 注意:json数据的键值对。

[ 
    { 
    "KEYWORD_TEXT": "red herring 9e23f4ad", 
    "SEARCH_VOLUME": 4574730 
    }, 
    { 
    "KEYWORD_TEXT": "nike 656e95f0", 
    "SEARCH_VOLUME": 3442386 
    }, 
    etc... 
] 

基本上这个关键字和这个关键字的值相互相邻。这个怎么做?

+0

这不是现成可用的,你应该寻找的是做它的[ – smnbbrv

+0

可能的复制库我怎么能漂亮地打印JSON使用JavaScript?](https://stackoverflow.com/questions/4810841/how-can-i-pretty-print-json-using-javascript) –

+0

这与JSON无关。你只是采取一种数据结构并基于它创建一个不同的数据结构。 – Quentin

回答

1

您可以将密钥值映射像下面 -

resultaten = result.data.map(function (item) { 
    return { 
    [item.key]: item.value 
    } 
}); 

JSON.stringify(resultaten); 
+0

嗨感谢您的回答,但上面的代码给了我result.map不是一个函数 –

+0

@ Kevin.a,抱歉,我的糟糕,因为'result'返回一个数组在其data属性的对象,你需要运行'result.data.map'。 – shawon191

+0

感谢您的快速评论,我现在得到TypeError:无法读取未定义的属性“地图” –