如何从未知的json文件中提取数据?

时间:2015-07-14 15:27:45

标签: javascript json node.js

我有这个json文件:

  

{       " moosy":{           " id":39464441,           "姓名":" Moosy",           " profileIconId":558,           "召唤者等级":30,           " revisionDate":1436887737000       }   }

由API生成。 这是我的代码:

var http = require('http');
var LolApi = require('leagueapi');
var summonerName = 'moosy';

var server = http.createServer(function(req, res) {
  res.writeHead(200);

      LolApi.init('MY_VERY_PRIVATE_KEY', 'euw');

      LolApi.Summoner.getByName(summonerName, function(err, summoner) {
          if(!err) {

            var profil = JSON.stringify(summoner);
            console.log(profil);
            res.write(profil);

            var summonerId = profil.summonerName.id;
            console.log(summonerId);
            res.write(summonerId);

          }
      })


});
server.listen(8080);

我想将不同的变量提取到ID,NAME,ProfileIconId和summonerLevel。

我还没弄清楚如何使用JSON.parse,你能帮助我吗? :) 我使用的是Node JS。

谢谢!

3 个答案:

答案 0 :(得分:0)

转到http://jsonlint.com/并验证您的JSON。你会发现它是无效的。也许这会给你带来麻烦。

答案 1 :(得分:0)

查看以下帖子,了解相关信息。

Parsing json in node.js

var summonerName = 'moosy';
var profil = { summonerName : { "id": 39464441, "name": "Moosy", "profileIconId": 558, "summonerLevel": 30, "revisionDate": 1436887737000 } };
ID=profil.summonerName.id;
NAME=profil.summonerName.name; 
ProfileIconId=profil.summonerName.profileIconId;
summonerLevel=profil.summonerName.summonerLevel;

答案 2 :(得分:0)

如果要使用字符串变量(如summonerName)来访问对象的属性,则需要使用不同的语法。

而不是这样做:

var summonerId = profil.summonerName.id;

这样做:

var summonerId = profil[summonerName].id;

第一种方式期望对象字面上有一个名为" summonerName"的属性,它不存在。