1

我对网络编程相当陌生,所以如果这是一个愚蠢的问题,我很抱歉。我环顾四周,找不到任何非常具体的东西,所以我想我会在这里问。

我正在尝试制作一个读取 JSON 文件并返回一些数据的脚本。更具体地说,这里有一个链接

我想搜索并找到 anworld_id等于的位置xxxx,然后返回match_id. 在另一个线程中,其中一个解决方案类似于

var obj = JSON.parse(//JSON info here)
var a = obj.world_id

谁能指出我实现这一目标的正确方向?

4

3 回答 3

2

将 jQuery 添加到项目中的原因有很多。但。请不要添加 jQuery只是为了获取一些 json 数据。Javascript 完全有能力自己处理这个,谢谢:

// simple cross-browser ajax helper
var ajaxGet = function (url, callback) {
    var callback = (typeof callback == 'function' ? callback : false), xhr = null;
    try {
      xhr = new XMLHttpRequest();
    } catch (e) {
      try {
        xhr = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
    if (!xhr)
           return null;
    xhr.open("GET", url,true);
    xhr.onreadystatechange=function() {
      if (xhr.readyState==4 && callback) {
        callback(xhr.responseText)
      }
    }
    xhr.send(null);
    return xhr;
}

// example usage, grab the json data, loop it and log red_world_id to console
ajaxGet(
    'https://api.guildwars2.com/v1/wvw/matches.json', 
    function (response) {
        response = JSON.parse(response);
        if (!response)
            return;
        var i, list = response.wvw_matches;
        for (i in list) {
            console.log(list[i].red_world_id); // outputs an id
        }
});

在这里试试:http: //jsfiddle.net/7WrmL/

因此,基本上,对于您的特定用途,您可以根据所需的匹配 id 检查每个对象的 id 属性,而不是简单地将 ID 记录到控制台,例如,返回i匹配的索引(不确定我是否完全理解您的内容)在那之后重新)。

请记住:在需要时使用 jQuery,而不是用于所有内容。

文档

于 2013-08-21T15:31:21.247 回答
1

获取 JSON 数据的一种简单方法是使用 jQuery,如下所示:

<div id="reply"></div>

<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script>
$(function () {
    $.getJSON(
        "https://api.guildwars2.com/v1/wvw/matches.json",
        function (data) {
            $("#reply").html(JSON.stringify(data));
            // or work with the data here, already in object format
        });
});
</script>

见这里:http: //jsfiddle.net/mynetx/LwNKC/

于 2013-08-21T15:20:14.860 回答
0

看看我下面的代码。我使用 jquery 来获取内容

var result;

$.get(
    "https://api.guildwars2.com/v1/wvw/matches.json",
    {},
    function(data) {
       var result = data;
    }
);

var arr = JSON.parse(result);

var length = arr.length;

for (var i = 0; i < length; i++) 
{
  if(arr[i].red_world_id == 'xxx')
  {
        console.log('Got it');
  }

  if(arr[i].blue_world_id== 'xxx')
  {
        console.log('Got it');
  }

  if(arr[i].green_world_id== 'xxx')
  {
        console.log('Got it');
  }
}

当心笔误:)。

于 2013-08-21T15:19:17.727 回答