区分JSON中的矩阵和列表

时间:2016-05-19 14:23:40

标签: javascript json list matrix ambiguity

假设我有矩阵

[[1, 2, 3, 4]
 [5, 6, 7, 8]
 [9,10,11,12]]

和列表清单

[[1,2,3,4],[5,6,7,8],[9,10,11,12]]

正在使用哪些JSON表示能够区分这两者而不会产生歧义?

1 个答案:

答案 0 :(得分:4)

注意:如果您添加JavaScript' JavaScript,我认为您可以获得更多关注和更好的答案。标记到问题中。

根据https://jsonformatter.curiousconcept.com/

的第一张矩阵
[[1, 2, 3, 4]
 [5, 6, 7, 8]
 [9,10,11,12]]

不是有效的JSON格式,所以我认为您可能必须将其写为二维数组,如下所示:

[[1, 2, 3, 4],
 [5, 6, 7, 8],
 [9,10,11,12]]

由于忽略了JSON的空格(Are whitespace characters insignificant in JSON?),因此代码将等同于[[1,2,3,4],[5,6,7,8],[9,10, 11,12]。当您通过AJAX调用时,您将获得/发送(无论您是GET还是POST)[[1,2,3,4],[5,6,7,8],[9,10,11, 12]]格式。因此,JavaScript对象表示法(JSON)中的矩阵在此列表列表中表示。

但是,如果您真的想要将矩阵与JSON中的其他列表列表区分开来,可以向其添加一个对象,以指定此列表列表是特殊的。

{
  "ImportantMatrix": [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
}

返回此JSON后,您可以使用JavaScript来检索Matrix。就像这里显示的例子一样:



var text = '{"ImportantMatrix": [[1,2,3,4],[5,6,7,8],[9,10,11,12]]}';

obj = JSON.parse(text);

document.getElementById("demo").innerHTML =JSON.stringify(obj.ImportantMatrix)

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>




</body>
</html>
&#13;
&#13;
&#13;

摘录自:http://www.w3schools.com/js/tryit.asp?filename=tryjs_json_parse

然而,假设您拥有完全控制权并且可以更改您获得的JSON格式。