如何将JSON Stringify附加到javascript变量
我有一个变量:如何将JSON Stringify附加到javascript变量,javascript,json,Javascript,Json,我有一个变量: var testData; 我有一个填充数组的函数。通过一个数组并生成另一个数组,如下所示: var person = { "Name": obj.Name, "Age": obj.Age, } partsObject.push(person); 然后我想将这个数组转换成JSON,这样我就可以将它用于我的D3对象,所以我这样做: testData = JSON.stringify(partsObject); 我可以控制台记录这个变量,但当试图通过D3的fo
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
{
我得到错误uncaughttypeerror:testData.forEach不是一个函数
我不明白如何将变量记录到控制台,但似乎我不能将其用作JSON。有什么想法吗 您当前正在尝试循环一个字符串,因为您将数组字符串化
只需执行
partsObject.forEach
操作,不要将数组字符串化 顾名思义,stringify()
将JavaScript对象(JSON中的JSO)转换为JSON的字符串。您可以console.log()
使用它,因为console.log
需要一个字符串,任何非字符串的内容都将转换为要显示的字符串
如果您想再次将其用作数组,则需要将JSON字符串解析回JavaScript对象:
JSON.parse(testData)
您真的不需要将数组字符串化以传递给d3。不要与javascript对象混淆,因为forEach
需要一个数组来循环,并且您要传递一个字符串以使用forEach
函数进行操作
使用:
JSON.stringify(partsObject)代码>创建一个字符串作为“{'Name':'ABC','Age':23}”
Uncaught TypeError:testData.forEach不是由于javascript无法找到数组而导致的函数
。stringify()
将javascript对象转换为字符串。你要么想跑
partsObjects.forEach()
或者,您也可以将字符串化后的字符串转换回具有
(JSON.parse(testData)).forEach()
字符串是否具有
forEach()
函数?最后一句话不正确。JavaScript对象是JavaScript对象,而不是“JSON”。JSON是一种表示法,它只是一种将某些内容表示为文本的方式。
(JSON.parse(testData)).forEach()