【问题标题】:Sending JSON having dynamic values in POST body request在 POST 正文请求中发送具有动态值的 JSON
【发布时间】:2016-08-22 11:56:12
【问题描述】:

Javascript 新手,有一个基本查询

对于 POST AJAX 请求,我需要在 body 参数中以 JSON 格式发送以下数据,但是经度、纬度和半径值是动态的,即将根据当前位置提供。

{
  "inGeoFence" : {
    "gpsCircle" : {
      "longitude": 122.2620,
      "latitude": 37.4996,
      "radius": 180000
    }
  }
}

静态的写法是

 "data": "{\r\n  \"inGeoFence\" : {\r\n    \"gpsCircle\" : {\r\n      \"longitude\": 77.348235,\r\n      \"latitude\": 28.533938,\r\n      \"radius\": 100\r\n    }\r\n  }\r\n}\r\n"

上面的数据工作正常,因为都是静态值并且形成了一个字符串。

您能否建议我编写相同的 JSON 以便可以输入动态值。还有什么是发送 JSON 的最佳/正确方式?

谢谢

【问题讨论】:

  • 你需要使用JSON.parse(your_json_var)

标签: javascript json ajax post


【解决方案1】:

只需构造 JS 对象并将其字符串化:

"data": JSON.stringify({
    inGeoFence: {
        gpsCircle: {
            longitude: getLong(),
            latitude: getLat(),
            radius: getRadius()
        }
    }
});

您也可以将data 作为 JS 对象发送,并在服务器端将其读取为数组:

$.ajax({
     data: {
      inGeoFence: {
        gpsCircle: {
          longitude: $('#long').val(),
          latitude: $('#lat').val(),
          radius: $('#radius').val()
        }
      }
    }
});

[server side, e.g. PHP]
$_POST['inGeoFence']['gpsCircle']['longitude']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 2017-03-24
    • 2021-03-12
    • 2020-06-20
    • 2019-03-15
    • 2020-05-23
    相关资源
    最近更新 更多