如何将JSON Stringify附加到javascript变量

时间:2015-09-07 13:58:06

标签: javascript json

我有一个变量:

var testData;

我有一个填充数组的函数。遍历一个数组并创建另一个数组:

var person = {
    "Name": obj.Name,
    "Age": obj.Age,

}
partsObject.push(person);

然后我想将这个数组变成JSON,这样我就可以将它与我的D3对象一起使用,所以我这样做:

testData = JSON.stringify(partsObject);

我可以控制记录这个变量,但是当试图通过D3的forEach方法来完成它时,如下所示:

   testData.forEach(function(d) // data is the JSON
        {

我收到错误Uncaught TypeError: testData.forEach is not a function

我不明白如何将变量记录到控制台,但就好像我不能将它用作JSON一样。有任何想法吗 ?

4 个答案:

答案 0 :(得分:3)

顾名思义stringify()将JavaScript对象(JSON中的JSO)转换为JSON的字符串。您可console.log()因为console.log需要一个字符串,并且任何不是字符串的内容都会被转换为一个字符串。

如果要再次将其用作数组,则需要将JSON字符串解析回JavaScript对象:JSON.parse(testData)

答案 1 :(得分:2)

你真的不需要将你的Array字符串化传递给d3。不要混淆javascript对象,因为forEach需要一个数组循环,你传递一个字符串来操纵forEach函数

使用:

partsObject.forEach(function(d) 
 {
   ...

JSON.stringify(partsObject);创建一个字符串"{'Name':'ABC','Age':23}"

由于javascript无法找到数组

,导致

Uncaught TypeError: testData.forEach is not a function

答案 2 :(得分:1)

您正在尝试遍历字符串,因为 stringify 您的数组。

只需执行partsObject.forEach并且不要对您的数组进行字符串化。

答案 3 :(得分:1)

.stringify()将Javascript对象转换为字符串。你想要运行

partsObjects.forEach()

或者您可以将stringify' ed字符串转换回带有

的对象
(JSON.parse(testData)).forEach()