【问题标题】:JSON stringify json object typescript / angularJSON stringify json object typescript / angular
【发布时间】:2017-11-18 06:01:58
【问题描述】:

嘿,我正在尝试对 JSON 对象进行字符串化,或者我认为是 JSON 对象。以下是我当前的代码:

const user: any = {
      Username: username,
      Password: password
};

console.log('Data: ' + JSON.stringify(user));

控制台只打印出来:

Data: {}

如何修改我的“JSON 对象”使其不返回空?

【问题讨论】:

  • 你的对象不正确,没有值,这样的东西会起作用const user: any = {username:'John', password: '123'};
  • 对不起,用户名和密码是传递下来的变量,但是想想它们可能没有被初始化......愚蠢:S

标签: json angular typescript stringify


【解决方案1】:

如果用户名和密码变量都未定义,您将获得一个空对象。 Angular 不会创建任何具有未定义值的键。

您拥有它的对象(不带引号)正在引用 JavaScript 变量,它们可能不包含实际值,也不包含变量引用:

{
  Username: usernameVariable,
  Password: passwordVariable
}

如果您还没有定义这些变量,那么它们的值将是“未定义”。

但是,如果您在值周围加上引号,那么它们将是 JSON 对象中的实际值:

{
  Username: "usernameValue",
  Password: "passwordValue"
}

【讨论】:

  • 未定义的值?!你们男人喜欢为对象创建模型?!如果我做JSON.stringify({Usename:username, Password}) 为什么我可以达到预期的结果?!但我稍后需要它作为变量。
  • 目前您的数组转换为CONST user 类型为any 的数组,该数组包含nullUsername 类型的变量nullPassword 类型的password 变量值为null。所以你需要在值周围加上'" 来告诉它它们是值而不是类型。
  • 不是 Angular 没有创建具有未定义值的键。这发生在 JSON.stringify 函数中,它不是 Angular 的一部分。 JS 会很高兴地创建这样一个对象。请参阅MDN 了解更多信息。
  • 部分正确,我发现我引用的变量从未被初始化。但是感谢你们两位关于 Angular 和未定义值的提示。
【解决方案2】:

我认为这会起作用......

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>

<script>

var user = {
    Username: username, 
    Password: password
    };

var myJSON = JSON.stringify(user);
    document.getElementById("demo").innerHTML = myJSON;

</script>

</body>
</html>

【讨论】:

  • 这是假设您输入了用户名和密码。
  • Aaaaa 我刚看到这个有角标签...我是个白痴
  • 除此之外,这仍然是一个糟糕的答案。它没有任何解释,实际上并没有解决任何问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-11
  • 2019-09-10
  • 2020-08-05
  • 2013-01-21
  • 2018-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多