JSON对象未正确格式化为Javascript

JSON对象未正确格式化为Javascript,javascript,jquery,node.js,arrays,json,Javascript,Jquery,Node.js,Arrays,Json,我想在JavaScript中将JSON对象用作键->值数组,但我不明白为什么它不能以我想要的方式返回我的对象: 我尝试了以下方法: var obj = JSON.stringify(result); var result = Object.keys(obj).map(function (key) { // Using Number() to convert key to number type // Using obj[key] to retrieve key value

我想在JavaScript中将JSON对象用作键->值数组,但我不明白为什么它不能以我想要的方式返回我的对象:

我尝试了以下方法:

var obj = JSON.stringify(result);

var result = Object.keys(obj).map(function (key) { 

    // Using Number() to convert key to number type 
    // Using obj[key] to retrieve key value 
    return [Number(key), obj[key]]; 
}); 

for(var i = 0; i < result.length; i++) { 
    for(var z = 0; z < result[i].length; z++) { 
        console.log(result[i][z]); 
    } 
    
} 
似乎JSON对象中的每个字符都得到一个键,但键和值都在对象本身中

更新:变量结果的值为

{"rownumber":1,"ID":1}{"rownumber":2,"ID":2}

有人能帮我一下吗?

似乎您正在将一个对象传递给JSON.stringify,它将该对象转换为字符串。请参阅@Barmar的第一条注释

换线就行了

var obj = JSON.stringify(result);
进入

==编辑===

OP更新问题后,上述建议实际上不足以解决问题

输入是一个包含以下内容的字符串:

“{rownumber:1,ID:1}{rownumber:2,ID:2}”

因为它不是有效的JSON字符串,所以仅使用JSON.parse是不够的。首先,需要将字符串拆分为两个单独的对象描述,然后将每个对象描述传递给JSON.parse

如果要在内存中进行变异或复制,则应包装JSON.parse

var obj = JSON.parse(JSON.stringify(result));
否则,只需删除JSON.stringify


stringify创建一个字符串,而不是一个对象。如果您已经有了一个对象,只需直接处理它,就不需要将其转换为JSONalso@KunalMukherjee我编辑了原始帖子,也发布了输入对象。有没有办法将result的值编辑为数组中两个格式正确的json对象,或者将结果合并成一个json对象?目前,您首先需要将该字符串解析为两个对象,然后再尝试将其作为常规json对象进行操作。完全不需要。这会将和对象转换为字符串,然后再转换回对象。只需省略JSON.parse和JSON.stringify,您将得到相同的结果。@david stringify+parse将克隆该对象,而obj=result将同时指向同一对象。@freedomn-m是的,从技术上讲您是正确的。但是,对于前面提到的问题,此解决方案没有添加任何有助于解决问题的有价值的信息。现在我得到了相同的结果,但字符数较少,因为它删除了obj变量中的所有\和符号。问题是,我想作为参数输入到函数中的obj是一个字符串,但我需要它们作为两个独立的对象{rownumber:1,ID:1}{rownumber:2,ID:2}。我该怎么做?如果你需要准确的答案,你需要提供所有的信息;-我的答案是基于猜测结果的初始值。这种猜测又是基于您在控制台中显示为输出的内容。请编辑您的问题,我将完善我的答案。我发布了输入对象和值。够了吗?
var obj = result;
var splitted = result.
  split('}{'). // <-- split in 2
  map((partialObjectStr, i) => {
    return JSON.parse( // <-- parse into object
      i < 1 
        ? `${partialObjectStr}}` // <-- add right } before parsing
        : `{${partialObjectStr}` // <-- add left { before parsing
    );
  });

var objA = splitted[0];
var objB = splitted[1];

console.log(objA);
console.log(objB);
var obj = JSON.parse(JSON.stringify(result));
var obj = result;