从返回JSON的url输出文本

时间:2011-08-18 07:21:41

标签: javascript json

我更像是一个后端人,这个javascript的东西有点偏离我的区域。我真的可以在正确的方向上使用一点:)

所以我有一个URL,例如,返回这个JSON:

[{"pk": 1, "model": "didyouknow.fact", "fields": {"fact": "Random fact 1"}}, 
 {"pk": 2, "model": "didyouknow.fact", "fields": {"fact": "Random fact 2"}}, 
 {"pk": 3, "model": "didyouknow.fact", "fields": {"fact": "Random fact 3"}}, 
 {"pk": 4, "model": "didyouknow.fact", "fields": {"fact": "Random fact 4"}}, 
 {"pk": 5, "model": "didyouknow.fact", "fields": {"fact": "Random fact 5"}}]

我想写一段我可以嵌入HTML的javascript,它会随机选择并打印JSON URL中的一个“事实”。

3 个答案:

答案 0 :(得分:1)

希望这会有所帮助:

var a = '[{"pk": 1, "model": "didyouknow.fact", "fields": {"fact": "Random fact 1"}}, {"pk": 2, "model": "didyouknow.fact", "fields": {"fact": "Random fact 2"}}, {"pk": 3, "model": "didyouknow.fact", "fields": {"fact": "Random fact 3"}}, {"pk": 4, "model": "didyouknow.fact", "fields": {"fact": "Random fact 4"}}, {"pk": 5, "model": "didyouknow.fact", "fields": {"fact": "Random fact 5"}}]';
alert(eval(a)[0].model);

以下是使用AJAX呼叫(本地)Web服务的示例:

$.ajax({
  url: "test.php",
  success: function(data){
    alert(eval(data).result);
  }
});

答案 1 :(得分:1)

你可以这样做:

var questionData = JSON.parse(data);
var randomIndex = Math.floor(Math.random() * questionData.length);
var randomFact = questionData[randomIndex].fields.fact;

然后,您想要对网页中的randomFact做什么取决于您,并且您没有提供任何有关此信息的信息供我们帮助。您可以将事实放入页面上的现有元素中。您可以在页面上创建所需的新元素,等等......

答案 2 :(得分:0)

使用JSON.parse转换为数组并选择随机元素。如果你仍然无法让它发布你的代码。