从randomUser.me api输出大写名称?

时间:2018-01-12 05:17:08

标签: javascript json api

如果这不是提出这个问题的正确平台,请原谅我。让我先言一下,我是一名API和JavaScript经验非常少的设计师。

我正在使用randomUser api生成一个json文件或url我可以在Invision的Sketch工艺工具中输入,所以我可以在我的设计中输入真实数据。 https://screencast.com/t/jAkwUpUja2。但是,它以小写而不是title-case / capitalized来提供名称。

我通过在浏览器中输入我需要的端点来生成JSON:https://screencast.com/t/E8Cmjk5XSSCk

那么,有没有办法可以强制api给我大写的名字?谢谢!

编辑:这是JSON网址:https://randomuser.me/api/?results=20&nat=us&inc=name,gender,picture&format=pretty

2 个答案:

答案 0 :(得分:1)

据我所知,这是使用JS大写字符串的最简单方法:

// let's assume, that you have stored the lastname as follow:
let last = 'rodney';

要转换姓氏,请应用以下模式:

let capitalizedLast = last[0].toUpperCase() + last.substr(1);

last[0]返回字符串r的第一个字母 last.substr(1)给出了姓氏odney的剩余部分 使用toUpperCase()转换第一个字母,+将连接到最终结果。

您只需要对API的结果进行迭代,然后以这种方式转换所需的元素。

答案 1 :(得分:0)

快速查看文档表明,可能没有办法让API直接返回大写的名称。因此,您必须编写一些JavaScript来为您完成这项工作。

此代码应将数据打印到控制台,所有名称都大写。

它遍历结果数组中的项目,遍历项目的name属性的所有属性并将它们大写。

capitalize函数获取名称的第一个字符,将其转换为大写字母并将其附加到名称的其余部分。



function capitalize(text) {
  return (!text || !text.length) ?
    text :
    (text[0].toUpperCase() + text.slice(1));
}

$.get("https://randomuser.me/api/?results=20&nat=us&inc=name,gender,picture&format=pretty",
  function(data) {
    if (!data || !data.results)
      return;

    data.results.forEach(function(user) {
      if (user.name) {
        for (var name in user.name) {
          user.name[name] = capitalize(user.name[name]);
        }
      }
    });
    console.log(data);
  });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;