Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用stringify将javascript对象转换为JSON_Javascript_Node.js_Json - Fatal编程技术网

使用stringify将javascript对象转换为JSON

使用stringify将javascript对象转换为JSON,javascript,node.js,json,Javascript,Node.js,Json,我已经阅读了前面的答案,建议使用JSON.stringify,但它并没有像我预期的那样工作。。情况如下: [ { category = 'Telephone & Accessories'; in_stock = 'True'; description = '-'; }, { category = 'Telephone & Accessories'; in_stock = 'False'; description = '-'; } ] 我使用的是JSON.st

我已经阅读了前面的答案,建议使用JSON.stringify,但它并没有像我预期的那样工作。。情况如下:

[
 {
 category = 'Telephone & Accessories';
 in_stock = 'True';
 description = '-';
 },
 {
 category = 'Telephone & Accessories';
 in_stock = 'False';
 description = '-';
 }
]
我使用的是JSON.stringify(),但它返回的数组是:

[
 '{
 "category" = "Telephone & Accessories";
 "in_stock" = "True";
 "description" = "-";
 }',
 '{
 "category" = "Telephone & Accessories";
 "in_stock" = "False";
 "description" = "-";
 }'
]
这不是我所期望的。。我不希望整个JSON对象都用引号括起来

有人面临同样的问题吗

预期:

[
 {
 "category" = "Telephone & Accessories";
 "in_stock" = "True";
 "description" = "-";
 },
 {
 "category" = "Telephone & Accessories";
 "in_stock" = "False";
 "description" = "-";
 }
]

我认为你的问题在于这里的语法。您的Javascript对象中有一些错误。 这就是它应该是什么样子:

const data = [
  {
    category: 'Telephone & Accessories',
    in_stock: true,
    description: '-'
  },
  {
    category: 'Telephone & Accessories',
    in_stock: false,
    description: '-'
  }
]
请注意区别:

  • Javascript对象中的属性由逗号(,)而不是分号(;)分隔
  • 键值对由Key:value定义,而不是Key=value。(冒号:而不是等号=)
  • true和false(作为布尔值)不能用引号括起来
然而,JSON.stringify()总是用引号括住字符串


您能解释并展示更多的实现吗?

您得到的结果似乎来自
map
reduce
函数

// I changed your value to be a valid json object ('=' -> ':') and (';' -> ',')
var data = [
     {
       category : 'Telephone & Accessories',
       in_stock : 'True',
       description : '-'
     },
     {
       category : 'Telephone & Accessories',
       in_stock : 'False',
       description : '-'
     }
];
data.map(JSON.stringify); // is same result as what you get 
如果将
数据
直接传递到
JSON.stringify
,则应获得有效的JSON字符串

// data was declare above 
var jsonString = JSON.stringify(data)
// jsonString is a valid JSON string

问题可能是数组的
映射
函数或链接函数的行为。

stringify就是这样做的,它将其转换为字符串,如引号所示。你到底想要什么?!这甚至不是语法上有效的Javascriptwith@jonrsharpe:但是它不是一个有效的JSON,不是吗?我正在尝试将结果上传为json文件。由于
=
,这些东西都不是有效的JS/json。请举例说明你的实际问题是什么。但顾名思义,JSON.stringify会创建一个与其输入相对应的有效JSON字符串。