完全坚持如何在 HTML 中显示我的 JSON。编辑:我知道我想如何格式化它,除了原始 JSON [重复],我无法让它输出任何东西

Posted

技术标签:

【中文标题】完全坚持如何在 HTML 中显示我的 JSON。编辑:我知道我想如何格式化它,除了原始 JSON [重复],我无法让它输出任何东西【英文标题】:Completely stuck on how to display my JSON in HTML. Edit: I know how i want to format it, I just can't get it to output anything but raw JSON [duplicate] 【发布时间】:2020-07-11 14:53:51 【问题描述】:

我已经为此工作了几个小时,到处搜索,似乎无法解决它。我已经留下了 API URL,所以如果你想看看(它是公开的)。我累了,所以如果我不明白,请告诉我。我正在尝试为新闻制作自定义布局。但是我不能用它做任何事情,我只有原始的 JSON,而且我已经尝试了很多。如果你能举个例子,比如带有新闻文章名称的标题,或者简单的东西,我会想办法的,但现在,我很沮丧,在圈子里跑,哈哈。谢谢!


 "location": 
"long": -106.346771,
"countryOrRegion": "Canada",
"provinceOrState": null,
"county": null,
"isoCode": "CA",
"lat": 56.130366
,
"updatedDateTime": "2020-03-31T04:46:00.3795966Z",
"news": [
 
    "path": "_news/2020-03-31-canada-post-workers-customers-seeing-heightened-safeguards.md",
    "title": "Canada Post workers, customers seeing heightened safeguards",
    "excerpt": "COVID-19 ...",
    "heat": null,
    "tags": [
      "CA"
    ]  ,
    "type": "article",
    "webUrl": "https://nnsl.com/yellowknifer/canada-post-workers-customers-seeing-heightened-safeguards/",
    "ampWebUrl": null,
    "cdnAmpWebUrl": null,
    "publishedDateTime": "2020-03-30T21:00:00-07:00",
    "updatedDateTime": null,
    "provider": 
      "name": "Northern News Services",
      "domain": "nnsl.com",
      "images": null,
      "publishers": null,
      "authors": null
    ,
    "images": null,
    "locale": "en-us",
    "categories": [
      "news"
    ],
    "topics": [
      "Coronavirus in Canada",
      "Coronavirus"
    ]
  ,
  
    "path": "_news/2020-03-31-in-canada-and-abroad-covid-19-super-spreaders-could-be-anywhere.md",
    "title": "In Canada and abroad, COVID-19 super-spreaders could be anywhere",
    "excerpt": "In Canada, while no specific individual has yet been identified as super-spreader ... 
Scientists are researching how much of a role silent carriers of COVID-19 - those who exhibit no symptoms - play in unknowingly spreading the disease. This is why self-isolation is important, Riskin said. \"It’s a reminder that for Canadians, we all have ...",
     "heat": null,
    " ...etc

糟糕,您需要一个密钥才能查看该文件。我将粘贴一个条目。它是免费的。

<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script type="text/javascript" src="./jquery-3.4.1.min.js"></script>
<style>
countryOrRegion: font-size: 20px;

</style>
<title></title>
</head>
<body>

<div id="demo"></div>


<script>
 $.ajax(
  type: "GET",
  url: "https://api.smartable.ai/coronavirus/news/CA",
  // Request headers
  beforeSend: function(xhrObj) 
    xhrObj.setRequestHeader("Cache-Control", "no-cache");
    xhrObj.setRequestHeader("Subscription-Key", "my free key");
    ,
)

.done(function (data) 

var myJSON = JSON.stringify(data);

document.getElementById("demo").innerHTML = myJSON;

)
</script>

</body>

【问题讨论】:

由您决定新闻的布局方式。通过卡片或表格,由您决定。如果您愿意,可以使用 html 免费模板 我无法以 HTML 格式显示任何新闻。我知道我想怎么做,但我无法解析/解码。无论我做什么,我都会得到相同的原始原始表单。 我知道您对此感到疲倦并且可能对此感到沮丧,但如果您可以展示您的尝试,那么我们可以帮助您让它发挥作用。尝试搜索“在 HTML 表格中显示 JSON” 之类的内容,这样的帖子很多。这是一个很好的例子~Parsing JSON objects for HTML table JSON.stringify() 将您的数据转换为 JSON。而JSON.parse() 将其转换为您可以使用的对象。将dataType: 'json' 属性添加到您的$.ajax 选项以接收预解析的数据。然后你可以以任何你想要的方式使用这个对象。 我已经尝试了很多 Show in HTML table, jQuery.each(data.results, function(i, val) code (blank page), php $JSON = file_get_contents( "corona.lmao.ninja/all"); $jsonIterator = new RecursiveIteratorIterator(new RecursiveArrayIterator(json_decode($JSON, TRUE)), RecursiveIteratorIterator::SELF_FIRST); (空白页), 【参考方案1】:

如何按原样使用响应? 我更改了您的代码以使用来自 reqres.in 的免费 API 调用,然后使用结果中的特定信息。

<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<style>
countryOrRegion: font-size: 20px;

</style>
<title></title>
</head>
<body>

<div id="demo">
    <p id="first-name"></p>
    <p id="last-name"></p>
</div>


<script>
 $.ajax(
  type: "GET",
  url: "https://reqres.in/api/users/1",
  // Request headers
  beforeSend: function(xhrObj) 
    xhrObj.setRequestHeader("Cache-Control", "no-cache");
    xhrObj.setRequestHeader("Subscription-Key", "my free key");
    ,
)

.done(function (data) 
  console.log('Your response', data)
  document.getElementById("first-name").innerHTML = data.data.first_name;
  document.getElementById("last-name").innerHTML = data.data.last_name;
)
</script>

</body>

因此您可以使用data.location.longdata.location.lat 或任何您需要在 API 调用响应中显示的内容。

【讨论】:

谢谢你,用一些摆弄,效果很好。非常感谢,干杯! 欢迎您。终于可以写cmets了,赢了;)【参考方案2】:

我要做的是创建一个这样的模板构建器函数:

function BuildNewsTemplate(obj) 
    let str = "<div class='card'>";//outer
    str += `<h2>$obj.title</h2>`;
    str += `<p>$obj.publishedDateTime</p>`;
    str += `<a href='$obj.webUrl'>Read More...</p>`;
    str += "</div>";

    $('#demo').append(str);



then in your ajax response you can do this:

.done(function (data) 
   for(let i=0;i<data.news.length;i++)
     BuildNewsTemplate(data.news[i]);
       
)

【讨论】:

以上是关于完全坚持如何在 HTML 中显示我的 JSON。编辑:我知道我想如何格式化它,除了原始 JSON [重复],我无法让它输出任何东西的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS:如何在页面完全加载之前显示预加载或加载?

如何使用 jquery 在 html 中显示我的 json 结果?

CloudFormation 坚持认为我的 DynamoDB 创建 JSON 无效.. 但我看不出如何

如何使用材料角度将嵌套的json数组显示到html表中

如何使用 jquery 在 HTML 表中显示 json 内容

如何在组件中将“.json”文件显示为文本以便可以复制和粘贴?