我是 D3 的初学者(几乎没有 JS 经验)。我有以下代码行:
<script type='text/javascript'> data ='{"mpg":21,"cyl":6,"disp":160,"hp":110,"drat":3.9,"wt":2.62,"qsec":16.46,"vs":0,"am":1,"gear":4,"carb":4,"_row":"Mazda RX4"},{"mpg":21,"cyl":6,"disp":160,"hp":110,"drat":3.9,"wt":2.875,"qsec":17.02,"vs":0,"am":1,"gear":4,"carb":4,"_row":"Mazda RX4 Wag"}';</script>
<script type="text/javascript">
d3.select("body").append("div").text(JSON.parse(data));
</script>
总是会产生以下错误:
Uncaught SyntaxError: Unexpected token , test-html:1
数据本身是通过 R 产生的:
<!--begin.rcode results="asis", echo=FALSE, warning=FALSE, message=FALSE
library(RJSONIO)
out <- paste("<script type='text/javascript'> data ='", gsub("\\[|\\]", "",jsonlite::toJSON(mtcars[1:2,])), "';</script>", sep="")
cat(out)
end.rcode-->
这会导致您在第一个代码块(数据)中找到的 JSON 字符串。
任何人都可以找出问题所在吗?
谢谢!
最佳答案
var data
不是有效的 Json。
您应该在开头和结尾添加 []
。
var data ='[{"mpg":21,"cyl":6,"disp":160,"hp":110,"drat":3.9,"wt":2.62,"qsec":16.46,"vs":0,"am":1,"gear":4,"carb":4,"_row":"Mazda RX4"},{"mpg":21,"cyl":6,"disp":160,"hp":110,"drat":3.9,"wt":2.875,"qsec":17.02,"vs":0,"am":1,"gear":4,"carb":4,"_row":"Mazda RX4 Wag"}]';
加上 JSON.parse(data)
你将在 data
中有 2 个 Objects
而它不是一个字符串。
关于javascript - 解析一个 JSON 字符串并显示它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30697377/