【问题标题】:passing array to server via JSON.stringify() and getting strange result通过 JSON.stringify() 将数组传递给服务器并得到奇怪的结果
【发布时间】:2015-12-29 22:55:37
【问题描述】:

我正在 node.js、express.js 和 mongodb 上开发一个应用程序。我的任务是将数组传递到服务器端并将其插入到数据库中。我在整个网络上进行了搜索,发现我需要通过 JSON.stringify() 对我的数组进行字符串化,但是当我在服务器端对其进行控制台时,它看起来很奇怪,并且每次使用 JSON.parse() 的尝试都以错误结束。 这是一个通过 JSON.stringify() 传递的数组:

    [{
    "city": "London",
    "date": "20.11.2015",
    "sector": "A",
    "row": "1",
    "place": "1"
}, {
    "city": "London",
    "date": "20.11.2015",
    "sector": "A",
    "row": "1",
    "place": "2"
}, {
    "city": "London",
    "date": "20.11.2015",
    "sector": "A",
    "row": "2",
    "place": "1"
}, {
    "city": "London",
    "date": "20.11.2015",
    "sector": "A",
    "row": "2",
    "place": "2"
}, {
    "city": "London",
    "date": "20.11.2015",
    "sector": "B",
    "row": "1",
    "place": "1"
}, {
    "city": "London",
    "date": "20.11.2015",
    "sector": "B",
    "row": "1",
    "place": "2"
}, {
    "city": "London",
    "date": "20.11.2015",
    "sector": "B",
    "row": "2",
    "place": "1"
}, {
    "city": "London",
    "date": "20.11.2015",
    "sector": "B",
    "row": "2",
    "place": "2"
}]

当我将它传递到服务器端时,它看起来像这样:

{ '[{"city":"London","date":"20.11.2015","sector":"A","row":"1","place":"1"},{"city":"London","date":"20.11.2015","sector":"A","row":"1","place":"2"},{"city":"London","date":"20.11.2015","sector":"A","row":"2","place":"1"},{"city":"London","date":"20.11.2015","sector":"A","row":"2","place":"2"},{"city":"London","date":"20.11.2015","sector":"B","row":"1","place":"1"},{"city":"London","date":"20.11.2015","sector":"B","row":"1","place":"2"},{"city":"London","date":"20.11.2015","sector":"B","row":"2","place":"1"},{"city":"London","date":"20.11.2015","sector":"B","row":"2","place":"2"}]': ''}

任何解析它的尝试都会导致 500 错误。那我做错了什么?

【问题讨论】:

  • 你是如何将它传递给服务器的?
  • @epascarello $.ajax({ method: "POST", url: "/tickets/addticket", dataType: "json", data: JSON.stringify(dataToSend) });
  • 你是如何解析它的?

标签: javascript json node.js mongodb express


【解决方案1】:

你看到它在做什么了吗?它使用您传递的 JSON 作为没有值的键。

你可以这样做

$.ajax({ 
   method: "POST", 
   url: "/tickets/addticket", 
   dataType: "json",
   data : { val : JSON.stringify(dataToSend) }
}

node.js 读取 val 的查询字符串值

其他选项是设置内容类型

$.ajax({
    url: "/tickets/addticket", 
    type: 'POST', 
    contentType: 'application/json', 
    data: JSON.stringify(dataToSend)}
);

【讨论】:

  • 第一种方式也是对的,只是需要改变你获取数据的方式,但第二种方式通常是这样做的。
猜你喜欢
  • 1970-01-01
  • 2016-02-23
  • 2019-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多