3 回答
TA贡献1826条经验 获得超6个赞
假设我有
var payload = {"geoJSON":{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-102.038635,36.800488],[-94.567716,36.800488],[-96.149793,43.381098],[-104.060178,43.508721]]}}}
在发送服务器之前使用 JSON.stringify(payload) 将其字符串化。
payload = JSON.stringify(payload)
// after this code then sending payload to server
在服务器中使用 JSON.parse(payload) 来使用这个
// server nodejs
var receivedContent = JSON.parse(payload)
// then you can using receivedContent with format you want
TA贡献1757条经验 获得超7个赞
首先,HTTP 将所有内容都理解为字符串,因此将所有内容都转换为字符串。由您来解析它使用Number.parseInt
此外,它无关紧要,但 express 现在附带了它自己的正文解析器,您可以使用它。所以,而不是调用bodyParser.json,你只需调用express.json
编辑
根据评论所述,您可以有一个名为 parseCoordinates
function parseCoordinates(coordinates) {
return coordinates.map(inner => {
return Array.isArray(inner) ? inner.map(elem => parseFloat(elem)) : parseFloat(inner);
});
}
TA贡献1752条经验 获得超4个赞
{"geoJSON":{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-102.038635,36.800488],[-94.567716,36.800488],[-96.149793,43.381098],[-104.060178,43.508721]]}}}上面实际上是一个 JavaScript 对象。
{"geoJSON":{"type":"Feature","geometry":{"type":"LineString","coordinates":[["-102.038635","36.800488"],["-94.567716","36.800488"],["-96.149793","43.381098"],["-104.060178","43.508721"]]}}}上面实际上是一个JSON。
正如所建议的答案之一,每当您向服务器发送数据时,有效负载中的所有内容都将自动转换为字符串。您应该将值转换为数字。
另外,我认为任何解析都无法做到这一点,您应该为此编写自己的代码。我这么说的原因是,解析器永远不会知道原始值是客户端发送的字符串还是实际上是一个数字,因为所有的键和值都将成为字符串。
添加回答
举报
