Javascript 从返回JSON的url输出文本
我更多的是一个后端的家伙,这javascript的东西是有点超出我的领域。我真的可以在正确的方向上使用一个点:) 例如,我有一个URL,它返回这个JSON:Javascript 从返回JSON的url输出文本,javascript,json,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, "mod
[{"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"}}]
我想写一段javascript,我可以将它嵌入我的HTML中,从JSON URL中随机选择并打印一个“事实”。希望这有助于:
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);
}
});
使用
JSON.parse
将其转换为数组并选择一个随机元素。如果您仍然无法让它工作,请发布您的代码 您可以这样做:
var questionData = JSON.parse(data);
var randomIndex = Math.floor(Math.random() * questionData.length);
var randomFact = questionData[randomIndex].fields.fact;
然后,你想如何处理网页中的随机事实取决于你,而你还没有提供任何相关信息让我们来帮助你。您可以将事实放入页面上的现有元素中。您可以在需要的页面上创建新元素,等等。为什么不在服务器端创建呢?从您正在使用的任何存储中获取的数据更少,通过网络发送的数据更少。@Morten-我可以做到,但这不是我真正的问题。我想我并不是在强调我对javascript知之甚少。。。我只需要一个简单的js片段,它可以从我的JSON(来自URL)输出文本。除了我不能将var a=设置为JSON之外,JSON是来自URL的。我需要知道的是如何为URL.Edited的内容设置变量。我认为你将无法轮询远程URL。这是如何随机选择一个事实的?我没有看到任何随机性?@jfriend00看起来你已经找到了答案。我对随机性部分的答案投了你的赞成票,请随意编辑我的答案以包含你的添加内容,或者就此不谈。我最终让URL返回一个随机对象。我可以传递JSON.parse我的URL吗?