【问题标题】:Trying to parse through a large JSON object and extract data, but keep getting unexpected token error尝试解析大型 JSON 对象并提取数据,但不断收到意外令牌错误
【发布时间】:2016-04-01 08:48:51
【问题描述】:

我有一个文件 sample.JSON,内容如下:

{   "resultset": {
    "-count": "4904",
    "-resultType": "campgrounds",
    "result": [
      {
        "-availabilityStatus": "N",
        "-contractID": "GA",
        "-contractType": "STATE",
        "-facilityID": "530145",
        "-facilityName": "A. H. STEPHENS STATE HISTORIC PARK",
        "-faciltyPhoto": "/webphotos/GA/pid530145/0/80x53.jpg",
        "-latitude": "33.5633333",
        "-longitude": "-82.8966667",
        "-shortName": "C145",
        "-sitesWithAmps": "Y",
        "-sitesWithPetsAllowed": "Y",
        "-sitesWithSewerHookup": "N",
        "-sitesWithWaterHookup": "Y",
        "-state": "GA"
      },
      {
        "-availabilityStatus": "N",
        "-contractID": "OH",
        "-contractType": "STATE",
        "-facilityID": "960023",
        "-facilityName": "A.W. MARION STATE PARK",
        "-faciltyPhoto": "/webphotos/OH/pid960023/0/80x53.jpg",
        "-latitude": "39.6336111",
        "-longitude": "-82.8747222",
        "-shortName": "P023",
        "-sitesWithAmps": "Y",
        "-sitesWithPetsAllowed": "Y",
        "-sitesWithSewerHookup": "N",
        "-sitesWithWaterHookup": "N",
        "-state": "OH"
      },
      {
        "-availabilityStatus": "N",
        "-contractID": "NRSO",
        "-contractType": "FEDERAL",
        "-facilityID": "72346",
        "-facilityName": "ACKER ROCK LOOKOUT",
        "-faciltyPhoto": "/webphotos/NRSO/pid72346/0/80x53.jpg",
        "-latitude": "43.0523056",
        "-longitude": "-122.6456111",
        "-shortName": "ARCL",
        "-sitesWithAmps": "N",
        "-sitesWithPetsAllowed": "Y",
        "-sitesWithSewerHookup": "N",
        "-sitesWithWaterHookup": "N",
        "-state": "OR"
      }
    ]   } }

这只是一个更大的 JSON 对象的示例,我想通过它从每个数组对象中选择设施名称(不确定这是否是正确的术语),然后将每个设施名称写入一个新文件。

我知道我需要加载 JSON 对象,然后为对象的长度执行一个 for 循环。现在我只是想加载 sample.JSON 文件。到目前为止,这是我的代码:

var data = require('./campSample.JSON');
var fs = require('fs');

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

试图用节点运行这个总是给我 SyntaxError: Unexpected token :, 指“resultset”中的冒号:{

我不知道为什么会这样。我使用 JSON 验证器来确认 JSON 是否良好。为什么它告诉我这个语法是错误的?

【问题讨论】:

  • 你使用了什么 JSON 验证器?

标签: javascript json


【解决方案1】:

require() 已经解析了您的 JSON。

你不需要做任何事情。

【讨论】:

  • 但即使只做 console.log(data);给了我同样的错误。
  • 堆栈跟踪是什么?
  • console.log(data) 怎么可能给你一个 JSON 解析错误?
【解决方案2】:

将文件名中的.JSON更改为小写。

require() 具有 special code.json 文件解析为 JSON 而不是 Javascript,但这是区分大小写的。

【讨论】:

  • 啊哈!这做到了。谢谢!
猜你喜欢
  • 1970-01-01
  • 2013-09-26
  • 1970-01-01
  • 2020-09-01
  • 2021-05-29
  • 1970-01-01
  • 2022-01-02
  • 2015-10-27
  • 1970-01-01
相关资源
最近更新 更多