【问题标题】:Parse error on Google GeoLocate API sample JSONGoogle GeoLocate API 示例 JSON 上的解析错误
【发布时间】:2015-10-14 11:38:45
【问题描述】:

Google 是否更改了他们的 GeoLocation api 而没有更新文档?

我一直在逐字跟踪他们的示例代码

https://developers.google.com/maps/documentation/geolocation/intro

我将示例请求粘贴到我系统上名为 ex.json 的文件中。我仔细检查了我的 Google Maps Geolocation API 是否设置为 on 并执行了以下 curl 命令

curl -d ex.json -H "Content-Type: application/json" -i "https://www.googleapis.com/geolocation/v1/geolocate?key=[My key, yes I pasted my actual key in]"

我收到以下回复

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "parseError",
    "message": "Parse Error"
   }
  ],
  "code": 400,
  "message": "Parse Error"
 }
}

根据文档,这意味着他们提供的示例 json 有问题。只是为了完整起见,示例 json 看起来像

{
 "homeMobileCountryCode": 310,
 "homeMobileNetworkCode": 260,
 "radioType": "gsm",
 "carrier": "T-Mobile",
 "cellTowers": [
  {
   "cellId": 39627456,
   "locationAreaCode": 40495,
   "mobileCountryCode": 310,
   "mobileNetworkCode": 260,
   "age": 0,
   "signalStrength": -95
  }
 ],
 "wifiAccessPoints": [
  {
   "macAddress": "01:23:45:67:89:AB",
   "signalStrength": 8,
   "age": 0,
   "signalToNoiseRatio": -65,
   "channel": 8
  },
  {
   "macAddress": "01:23:45:67:89:AC",
   "signalStrength": 4,
   "age": 0
  }
 ]
}

JsonLint 验证它是正确的 Json,并且文档说所有字段都是可选的。我错过了什么,在编写文档后是否添加了一些必填字段?

【问题讨论】:

    标签: json google-geolocation


    【解决方案1】:

    Curl 需要“-X POST”作为额外参数。像这样工作:

    curl 'https://www.googleapis.com/geolocation/v1/geolocate?key=YOURKEY' -X POST -H "Content-Type: application/json" -d @yourjsonfile.json
    

    【讨论】:

      【解决方案2】:

      找到了解决方案,这是一个愚蠢的错误:-

      我的文件名是“sampledata.json”,我把它改成了“@sampledata.json”

      我尝试了三种不同的 curl 命令。我得到了回应。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-30
        相关资源
        最近更新 更多