如何设置JSON对象的多个值?

时间:2019-12-03 20:56:56

标签: javascript json

所以我一直在从事这个项目,但是由于无法弄清楚如何设置这个新JSON对象的其他值,所以我陷入了困境。所以基本上在前端我有这个: HTML page view。 “ cat4” ID是我尝试创建的新对象,并说明了我要修复的错误。问题是我在设置新创建对象的LIMIT值时遇到麻烦(或根本没有多个值)。这是创建对象的代码:


function sendCat()
{
  window.clearTimeout(timeoutID);
  var newCat = document.getElementById("newCat").value
  var lim = document.getElementById("limit").value
  var data;
  data = "cat=" + newCat + ", limit=" + lim;
  var jData = JSON.stringify(data);
  makeRec("POST", "/cats", 201, poller, data);
  document.getElementById("newCat").value = "Name";
  document.getElementById("limit").value = "0";
}

特别是我一直在玩data = "cat=" + newCat + ", limit=" + lim;行,但是到目前为止,我尝试的所有事情都没有奏效。有没有一种方法可以修改此行,以便在发送数据时可以正常工作?我觉得奇怪的是,该行代码仅适用于设置对象的一部分。

2 个答案:

答案 0 :(得分:-1)

您所说的“ JSON对象”实际上只是一个javascript对象,您可以使用对象文字语法创建一个。具有多个属性的对象文字如下所示:

var data = {
  cat: newCat,
  limit: lim
};
makeRec("POST", "/cats", 201, poller, JSON.stringify(data));

假设makeRec的第五个参数应该是POST请求主体,为字符串化JSON,因为您的代码似乎暗示了

答案 1 :(得分:-1)

  

JSON.stringify()方法将JavaScript对象或值转换为JSON字符串,如果指定了replacer函数,则可以选择替换值,如果指定了replacer数组,则可以仅包括指定的属性。

MDN

我想这就是你想要的:

const newCat = 'Meow';
const newLimit = 5;
const data = {
  cat: newCat,
  limit: newLimit
}

console.log(JSON.stringify(data));