我正在搞乱构建一个JSON对象,所以我可以将数据库查询的结果推送到它中,然后返回填充的JSON数据。但是从get go开始遇到问题。
这是我目前的代码:
//var AppenateResString = {name:"777"};
var AppenateResString = {
"DataSources": [{
"Id": "TEST",
"Rows": [
["10011", "10011 - Test Generic Project"]
],
"NewRows": [],
"DeletedRows": []
}],
"LastUpdated": ""
};
var AppenateResBody = JSON.parse(AppenateResString);
response.body = JSON.stringify(AppenateResBody);
但这是我得到的错误:
JavaScript Error: SyntaxError: invalid character 'o' looking for beginning of value
at
<anonymous>:21:23
--
};
var AppenateResBody = JSON.parse(AppenateResString);
^ Error!
我已经将它缩小到我的JSON布局出错了。或者我是如何构建JSON对象的......或者是一些基本的,“这就是你如何做JSON”的事情。但我无法理解。
有什么想法吗?
P.S。正如你所看到的,我已经注释了我认为构建的一个非常简单的JSON对象..它失败了。
答案 0 :(得分:6)
AppenateResString
根本不是JSON。它是一个JavaScript对象(而不是字符串)。
JSON是一种序列化格式。如果您在JavaScript中有任何内容,那么它将表示为字符串。
答案 1 :(得分:2)
这是一个javascript对象
var AppenateResString = {
"DataSources": [{
"Id": "TEST",
"Rows": [
["10011", "10011 - Test Generic Project"]
],
"NewRows": [],
"DeletedRows": []
}],
"LastUpdated": ""
};
如果你想把它作为JSON字符串那么
var str = JSON.stringify(AppenateResString);
如果您希望JSON字符串返回到javascript对象,那么
var obj = JSON.parse(str);
答案 2 :(得分:1)
你过于复杂的事情。您不需要JSON.parse该对象。它已经是您需要的格式。
<script type="text/javascript">
var AppenateResString = {
"DataSources": [{
"Id": "TEST",
"Rows": [
["10011", "10011 - Test Generic Project"]
],
"NewRows": [],
"DeletedRows": []
}],
"LastUpdated": ""
};
response.body = JSON.stringify(AppenateResString);
</script>
答案 3 :(得分:0)
var AppenateResBody = AppenateResString;
而不是
var AppenateResBody = JSON.parse(AppenateResString);
这是一个对象
见下文:
答案 4 :(得分:0)
您正在尝试对已经是对象的内容调用JSON.parse
,这就是您收到错误的原因。
说明invalid character 'o' looking for beginning of value
的错误消息正在发生,因为它确实试图解析单词'object'而不是实际的数据结构。