假设我有矩阵
[[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表示能够区分这两者而不会产生歧义?
答案 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;
摘录自:http://www.w3schools.com/js/tryit.asp?filename=tryjs_json_parse
然而,假设您拥有完全控制权并且可以更改您获得的JSON格式。