【发布时间】:2019-12-23 17:39:49
【问题描述】:
我尝试使用JSON.parse(); 将字符串解析为JavaScript 对象,但是当我调用console.log(object.constructor.name); 之后,它给了我“字符串”。
我尝试使用 parse 两次而不是一次,但它给了我一个错误。
var userInput = document.getElementById("userInput");
var yes = document.getElementById("yes");
var no = document.getElementById("no");
var dataString = "";
const endpoint = 'https://www.jsonstore.io/4037b406bb44de85c5dd50eb1a6472bedb79f447e747412695637c2784cbe43f';
function writeToDatabase(arr) {
alert(arr);
(async function() {
// Send a post request, saving some data
post_response = await fetch(endpoint, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(arr)
});
/*
// console.log the result
console.log(`POST response:`, await post_response.json())
*/
})();
}
function readFromDatabase() {
fetch(endpoint)
.then(response => response.json())
.then(data => {
console.log(data);
dataArr = data;
console.log(dataArr);
});
}
yes.onclick = function() {
fetch(endpoint)
.then(response => response.json())
.then(data => {
data = JSON.stringify(data);
console.log("full data: " + data);
data = JSON.parse(data);
data = data['result'];
data = JSON.stringify(data);
console.log("result array only: " + data);
data = JSON.parse(data);// object.contructor.name
console.log("after parse: " + data);
console.log("data type is: " + data.constructor.name);
data[userInput.value] = "YES";
console.log("final string to write to database: " + data);
writeToDatabase(data);
});
}
no.onclick = function() {
dataString = "{"+userInput.value+": "+"NO"+"}"
writeToDatabase(dataString);
}
我希望它转换为 Javascript 对象,以便我可以添加一个项目,但相反,它保留为一个字符串,因此我无法添加一个项目。
代码:https://repl.it/@ErichBuelow/JsonStore-using-JS 查看:https://jsonstore-using-js--erichbuelow.repl.co/
【问题讨论】:
-
您能否尝试创建一个您正在处理的工作示例,并至少分享一个响应示例 ->
JSON您正在使用。谢谢。 -
我以为它会给我对象?
-
在哪里?更具体。整个问题太模糊了
-
不确定,但我认为你不需要解析任何东西,你已经有了一个
Body.jsonas response... 所以你可以直接用 JS 对data Object进行操作! -
所以最终目标是更新数据库上的对象,所以我试图读取旧数据,将其解析为对象,添加到对象,然后解析为字符串并覆盖数据库中的旧的
标签: javascript javascript-objects jsonstore