可以在JavaScript中背靠背地解析两个JSON对象吗?

可以在JavaScript中背靠背地解析两个JSON对象吗?,javascript,json,Javascript,Json,可以在javascript中背靠背解析JSON对象吗?在正常情况下,我正在解析一个JSON对象,如下所示: {"success":true, "canUpload":false, "array":[ ], "test": "value"} 我对上面的问题没有异议。然而,我想知道我是否可以解析两个JSON库,它们能够检测连接在一起的两个JSON对象?比如说, {"success":true, "canUpload":false, "array":[ ], "test": "value"}{"ne

可以在javascript中背靠背解析JSON对象吗?在正常情况下,我正在解析一个JSON对象,如下所示:

{"success":true, "canUpload":false, "array":[ ], "test": "value"}
我对上面的问题没有异议。然而,我想知道我是否可以解析两个JSON库,它们能够检测连接在一起的两个JSON对象?比如说,

{"success":true, "canUpload":false, "array":[ ], "test": "value"}{"newJSONobj":"new value1"}

在第二个示例中,我需要两个JSON对象

您可以通过字符串操作将其转换为JSON数组。比如:

var objects = JSON.parse('[' + yourString.replace(/\}\{/g, '},{') + ']');

这在两种情况下(1个或多个对象)都有效。

您可以通过字符串操作将其转换为JSON数组。比如:

var objects = JSON.parse('[' + yourString.replace(/\}\{/g, '},{') + ']');

这在两种情况下都适用(1个或多个对象)。

如果使用的是web标准,则不能。如果您可以访问创建该JSON字符串的源代码,请正确格式化它。您需要将其转换为两个对象的数组。您必须用逗号分隔这两个对象,然后将这两个对象用括号括起来

[{
    "success": true,
    "canUpload": false,
    "array": [],
    "test": "value"
}, {
    "newJSONobj": "new value1"
}]
如果您没有访问源代码的权限,那么您必须使用一些javascript字符串操作将其拆分为两个单独的字符串,或者添加一些附加字符以实现上面列出的格式。这是一个可能的解决方案:

var jsonObjects = JSON.parse('[' + jsonString.replace(/\}\{/g, '},{') + ']');

这实际上是将两个对象包装在括号中,并用逗号分隔这两个对象(创建一个包含两个对象的数组)。但是,请注意,这不是100%可靠的。您可能会获得此过程无法正确处理的其他格式的数据。

如果您使用的是web标准,则不能。如果您可以访问创建该JSON字符串的源代码,请正确格式化它。您需要将其转换为两个对象的数组。您必须用逗号分隔这两个对象,然后将这两个对象用括号括起来

[{
    "success": true,
    "canUpload": false,
    "array": [],
    "test": "value"
}, {
    "newJSONobj": "new value1"
}]
如果您没有访问源代码的权限,那么您必须使用一些javascript字符串操作将其拆分为两个单独的字符串,或者添加一些附加字符以实现上面列出的格式。这是一个可能的解决方案:

var jsonObjects = JSON.parse('[' + jsonString.replace(/\}\{/g, '},{') + ']');

这实际上是将两个对象包装在括号中,并用逗号分隔这两个对象(创建一个包含两个对象的数组)。但是,请注意,这不是100%可靠的。您可能会获得此过程无法正确处理的其他格式的数据。

您显示的不是有效的json字符串(对象),因此在尝试解析它时可能会出错。如果连接的字符串是由您自己创建的,而不是传递给您,那么您可以创建一个包含两个(或更多)对象的字符串,如下所示。然后您将得到两个(或更多)对象的数组(对象本身)

“[{“success”:true,“canUpload”:false,“array”:[],“test”:“value},{“newJSONobj”:“newvalue1”}]”
您显示的不是有效的json字符串(对象),因此在尝试解析它时可能会出错。如果连接的字符串是您自己创建的,而不是传递给您的,您可以创建一个包含两个(或更多)对象的字符串,如下所示。然后您将获得包含两个(或更多)对象的数组(对象本身)

“[{“success”:true,“canUpload”:false,“array”:[],“test”:“value},{“newJSONobj”:“newvalue1”}]”
如果是这样的JSON字符串:

'{"success":true, "canUpload":false, "array":[ ], "test": "value"}{"newJSONobj":"new value1"}'
那么是的。你只需要对它做一点修改

data = '{"success":true, "canUpload":false, "array":[ ], "test": "value"}{"newJSONobj":"new value1"}'
data.split(/(?!})(?={)/).map(function(v, i) { return JSON.parse(v); })
看到了吗

var data='{“success”:true,“canUpload”:false,“array”:[],“test”:“value”}{“newJSONobj”:“newvalue1”};
var result=data.split(/(?!})(?={)/).map(函数(v,i){返回JSON.parse(v);});
console.log(结果)

如果是JSON字符串,请参见Console

'{"success":true, "canUpload":false, "array":[ ], "test": "value"}{"newJSONobj":"new value1"}'
然后是的。你只需要对它做一点修改

data = '{"success":true, "canUpload":false, "array":[ ], "test": "value"}{"newJSONobj":"new value1"}'
data.split(/(?!})(?={)/).map(function(v, i) { return JSON.parse(v); })
看到了吗

var data='{“success”:true,“canUpload”:false,“array”:[],“test”:“value”}{“newJSONobj”:“newvalue1”};
var result=data.split(/(?!})(?={)/).map(函数(v,i){返回JSON.parse(v);});
console.log(结果)

请参见Console
这里有更大的问题:为什么您的data 2 JSON字符串连接在一起?JSON对象还是字符串?您可以解析字符串。@JosephDreamer-这是因为我无法访问COTS产品的源代码,并且我正试图使用新数据修改HttpResponse,但是,我无法删除HttpResponse主体内容并重新加载用我自己的来解释它。所以我正试图找到一种方法,将我需要的数据添加到响应中,然后在JavaScription中对其进行适当的解析。为什么不分别解析它们,然后使用jQuery或任何其他库将它们合并。@ibrahimmahrir-我想这是我唯一的选择,只是想知道是否还有其他选择。哟你在这里有更大的问题:为什么你的data 2 JSON字符串连接在一起?JSON对象还是字符串?你解析一个字符串。@JosephDeeamer-这是因为我无法访问COTS产品的源代码,我正试图用新数据修改一个HttpResponse,但是,我无法删除HttpResponse主体内容并用我自己的内容重新编写。所以我I’’我正在想办法将我需要的数据添加到响应中,然后在Javascript中对其进行适当的解析。为什么不单独解析它们,然后使用jQuery或任何其他库将它们合并。@ibrahimmahrir-我认为这是我唯一的选择,只是想知道是否还有其他选择。问题是我不能这样做他的原因是我无法访问此COTS软件的源代码,并且由于一个HttpResponse(一旦写入)无法重新编写,我只是尝试使用COTS并添加需要在客户端解析的数据问题是我无法执行此操作,因为我无法访问此COTS软件的源代码,并且由于HttpResponse(一旦写入)无法重新编写,我只是尝试使用COTS并添加需要在客户端
/\}\s*\{/g
上解析的数据,如果中间有空格。@ibrahimmahrir你说得对。示例中没有,但这会使