将JSON.parse()应用于不寻常的JSON文件

Applying JSON.parse() to unusual JSON file

本文关键字:JSON 不寻常 文件 应用于 parse      更新时间:2023-09-26

试图在Meteor中使用JSON.parse()访问这个JSON文件的值字段,但我无法让它返回任何东西。我怀疑在从导入的JS对象中选择数据时,我的语法有错误。

{"status":"success","data":{"subjects":[{"value":"ABC","descr":"Descriptions"}]},"message":null,"meta":{"copyright":"Copyright","referenceDttm":"Date"}}

我试图将其存储到一个数组subjectArray中。这是我使用的代码:

var subjectArray = new Array();
subjectFile = HTTP.get("https://classes.cornell.edu/api/2.0/config/subjects.json?roster=FA15");
subjectJSON = JSON.parse(subjectFile);
for (int i=0; i<subjectJSON.length; i++) {
  subjectArray.push(subjectJSON[i].value)
}

漂亮的印刷这是:

{
    "data": {
        "subjects": [
            {
                "descr": "Descriptions",
                "value": "ABC"
            }
        ]
    },
    "message": null,
    "meta": {
        "copyright": "Copyright",
        "referenceDttm": "Date"
    },
    "status": "success"
}

来自HTTP调用的响应可能需要一段时间才能返回,因此您应该以异步方式读取响应。您应该将所有与"get"相关的代码移到回调函数中。如果你想了解更多关于HTTP和回调的信息,请查看docs

如果你知道for循环中的"value"是什么(因为我不知道),那么这就是你的答案:

HTTP.get("https://classes.cornell.edu/api/2.0/config/subjects.json?roster=FA15", function (err, res) {
  if(!!err) return false; 
  subjectJSON = JSON.parse(res);
  for (var i = 0; i < subjectJSON.length; i++) {
    subjectArray.push(subjectJSON[i].value);
  }
  return true;
});

另外,JavaScript中没有int