javascript - 解析一个 JSON 字符串并显示它

标签 javascript json r d3.js

我是 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/

相关文章:

java - android studio json数据解析错误

javascript - Pixabay API 始终显示相同的结果

r - Dplyr 对分组数据同时按值过滤顶行和底行

regex - R/正则表达式与 stringi/ICU : why is a '+' considered a non-[:punct:] character?

javascript - 在 Node js 中使用 res.render() 而不是 res.send()

javascript - 如何在单击按钮时切换所有单选框?

javascript - 使用 jQuery 执行 google map api 调用时出现问题(未返回 JSON)

r - R中 "Error: package ' ____ _' was built before 3.0.0: please re-install it"的原因

javascript - 如何将动态元素附加到在 lightgallery.js 中打开的图像

javascript - 编译Javascript