Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从返回JSON的url输出文本_Javascript_Json - Fatal编程技术网

Javascript 从返回JSON的url输出文本

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

我更多的是一个后端的家伙,这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"}}]
我想写一段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吗?